mmalik15
asked on
Populate Devexpress Gridview on the selection of another gridview using sqldatsource
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
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();
}
<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();
}
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
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.
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.
ASKER
I am specificallly looking for the DevExpress Gridviews. And sorry that example does not seem to be relevant