Improve company productivity with a Business Account.Sign Up

x
?
Solved

Populate Devexpress Gridview on the selection of another gridview using sqldatsource

Posted on 2010-08-27
3
Medium Priority
?
6,774 Views
Last Modified: 2012-05-10
Hi Experts,

I have a devexpress gridview bound to sqldatasource. On the selection of a row in this grid I want to pass student Matric No to second Dexexpress gridview so that it gets populate too with student data. I can get the Matric no, from the selected row but the problem I am having is to pass the selected Matric No as a parameter to the second Gridview. Any ideas how can we pass on this parameter
<dx:ASPxGridView ID="grid" runat="server" AutoGenerateColumns="False" DataSourceID="ds_Student"
                        KeyFieldName="MatricNo" ClientInstanceName="grid" OnCustomCallback="ASPxGridView1_CustomCallback">
                        <Columns>
                           <dx:GridViewCommandColumn VisibleIndex="3">
                                <SelectButton Text="select" Visible="True">
                                </SelectButton>
                            </dx:GridViewCommandColumn>
                            <dx:GridViewDataTextColumn FieldName="MatricNo" ReadOnly="True" VisibleIndex="0">
                            </dx:GridViewDataTextColumn>
                            <dx:GridViewDataTextColumn FieldName="Forename" VisibleIndex="1">
                            </dx:GridViewDataTextColumn>
                            <dx:GridViewDataTextColumn FieldName="Surname" VisibleIndex="2">
                            </dx:GridViewDataTextColumn>
                        </Columns>
                        <ClientSideEvents  SelectionChanged="function(s, e) {
	                    if (e.isSelected)
                    {
                        grid.PerformCallback(e.visibleIndex.toString());
                    }

                    }" />
                    </dx:ASPxGridView>
                    <asp:SqlDataSource ID="ds_Student" runat="server" ConnectionString="<%$ ConnectionStrings:EnterpriseValeConnectionString %>"
                        SelectCommand="SELECT [MatricNo], [Forename], [Surname], [Gender] FROM [Student]">
                    </asp:SqlDataSource>


<dx:ASPxGridView ID="ASPxGridView1" runat="server" AutoGenerateColumns="False"  DataSourceID="ds_StudentDetail"
                >
            <Columns>
                <dx:GridViewDataDateColumn FieldName="DateOfBirth" VisibleIndex="0">
                </dx:GridViewDataDateColumn>
                <dx:GridViewDataTextColumn FieldName="Email" VisibleIndex="1">
                </dx:GridViewDataTextColumn>
                <dx:GridViewDataTextColumn FieldName="Telephone" VisibleIndex="2">
                </dx:GridViewDataTextColumn>
            </Columns>
        </dx:ASPxGridView>
        </ContentTemplate>
        </asp:UpdatePanel>
        <asp:SqlDataSource ID="ds_StudentDetail" runat="server" ConnectionString="<%$ ConnectionStrings:EnterpriseValeConnectionString %>  "
            SelectCommand="SELECT [DateOfBirth], [Email], [Telephone] FROM [Student] WHERE ([MatricNo] = @MatricNo)" >
            <SelectParameters>
             <asp:SessionParameter SessionField="MatricNo" Name="MatricNo"></asp:SessionParameter>
            </SelectParameters>
        </asp:SqlDataSource>


Code Behind is 

  protected void ASPxGridView1_CustomCallback(object sender, ASPxGridViewCustomCallbackEventArgs e)
    {
        int index = Convert.ToInt32(e.Parameters);

        string[] fieldNames = { "MatricNo", "Surname" };
        object[] values = (object[])((ASPxGridView)sender).GetRowValues(index, fieldNames);


       Session["MatricNo"] = Convert.ToInt32(values[0]);
        ASPxGridView1.DataBind();

    }

Open in new window

<dx:ASPxGridView ID="grid" runat="server" AutoGenerateColumns="False" DataSourceID="ds_Student"
                        KeyFieldName="MatricNo" ClientInstanceName="grid" OnCustomCallback="ASPxGridView1_CustomCallback">
                        <Columns>
                           <dx:GridViewCommandColumn VisibleIndex="3">
                                <SelectButton Text="select" Visible="True">
                                </SelectButton>
                            </dx:GridViewCommandColumn>
                            <dx:GridViewDataTextColumn FieldName="MatricNo" ReadOnly="True" VisibleIndex="0">
                            </dx:GridViewDataTextColumn>
                            <dx:GridViewDataTextColumn FieldName="Forename" VisibleIndex="1">
                            </dx:GridViewDataTextColumn>
                            <dx:GridViewDataTextColumn FieldName="Surname" VisibleIndex="2">
                            </dx:GridViewDataTextColumn>
                        </Columns>
                        <ClientSideEvents  SelectionChanged="function(s, e) {
	                    if (e.isSelected)
                    {
                        grid.PerformCallback(e.visibleIndex.toString());
                    }

                    }" />
                    </dx:ASPxGridView>
                    <asp:SqlDataSource ID="ds_Student" runat="server" ConnectionString="<%$ ConnectionStrings:EnterpriseValeConnectionString %>"
                        SelectCommand="SELECT [MatricNo], [Forename], [Surname], [Gender] FROM [Student]">
                    </asp:SqlDataSource>


<dx:ASPxGridView ID="ASPxGridView1" runat="server" AutoGenerateColumns="False"  DataSourceID="ds_StudentDetail"
                >
            <Columns>
                <dx:GridViewDataDateColumn FieldName="DateOfBirth" VisibleIndex="0">
                </dx:GridViewDataDateColumn>
                <dx:GridViewDataTextColumn FieldName="Email" VisibleIndex="1">
                </dx:GridViewDataTextColumn>
                <dx:GridViewDataTextColumn FieldName="Telephone" VisibleIndex="2">
                </dx:GridViewDataTextColumn>
            </Columns>
        </dx:ASPxGridView>
        </ContentTemplate>
        </asp:UpdatePanel>
        <asp:SqlDataSource ID="ds_StudentDetail" runat="server" ConnectionString="<%$ ConnectionStrings:EnterpriseValeConnectionString %>  "
            SelectCommand="SELECT [DateOfBirth], [Email], [Telephone] FROM [Student] WHERE ([MatricNo] = @MatricNo)" >
            <SelectParameters>
             <asp:SessionParameter SessionField="MatricNo" Name="MatricNo"></asp:SessionParameter>
            </SelectParameters>
        </asp:SqlDataSource>


Code Behind is 

  protected void ASPxGridView1_CustomCallback(object sender, ASPxGridViewCustomCallbackEventArgs e)
    {
        int index = Convert.ToInt32(e.Parameters);

        string[] fieldNames = { "MatricNo", "Surname" };
        object[] values = (object[])((ASPxGridView)sender).GetRowValues(index, fieldNames);


       Session["MatricNo"] = Convert.ToInt32(values[0]);
        ASPxGridView1.DataBind();

    }

Open in new window

0
Comment
Question by:mmalik15
  • 2
3 Comments
 
LVL 9

Accepted Solution

by:
puru1981 earned 2000 total points
ID: 33540478
you can do this using dataset,datatables and relation. see the link below.

in example combobox is used you can use the gridview similarly.

http://www.experts-exchange.com/Programming/Languages/C_Sharp/Q_26411173.html
0
 

Author Comment

by:mmalik15
ID: 33540519
Thanks for the comment.
I am specificallly looking for the DevExpress Gridviews. And sorry that example does not seem to be relevant



0
 
LVL 9

Expert Comment

by:puru1981
ID: 33541496
i am talking here about dataset, datatable and datarelation. Forget about the other things.

you can see the datarelation easing the development in 3rd solution provided in this link

http://www.emoreau.com/Entries/Articles/2007/01/Setting-a-masterdetail-relationship-between-two-ComboBox.aspx

by using relation you can get the child rows from table2 depending on the foreign key column in table1 while creating the relation.

in devexpress gridviews you also set the datasource property to see the grid populated.

can you give me the code so that i can make it happen for you.
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
This article describes and provides a custom-made tool I wrote to give businesses a means of identifying commercial music content, without having to expend too much effort. Business recordings are easily identified from possibly illegal music files …
If you are looking for an automated solution for backup single or multiple Office 365 user mailboxes to Outlook data file, then you can use Kernel Office 365 Backup & Restore tool. Go through the video to check out the steps to backup single or mult…
Watch the video to know how one can repair corrupt Exchange OST file effortlessly and convert OST emails to MS Outlook PST file format by using Kernel for OST to PST converter tool. It can convert OST to MSG, MBOX, EML to access them. It can migrate…

606 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question