I would like to use the following example but with datatables. I am customizing an existing app and the way they handle the data is only thru datatables.
Long story short, I can't figure out how to get this to work using DT. Any help would be appreciated.
http://demos.telerik.com/aspnet-ajax/grid/examples/programming/selectedvalue/defaultcs.aspx
Thank you.
Long story short, I can't figure out how to get this to work using DT. Any help would be appreciated.
http://demos.telerik.com/aspnet-ajax/grid/examples/programming/selectedvalue/defaultcs.aspx
Thank you.
4 Answers, 1 is accepted
0
Shinu
Top achievements
Rank 2
answered on 05 Feb 2013, 05:50 AM
Hi,
Please take a look into the sample code snippet I tried.
C#:
Thanks,
Shinu.
Please take a look into the sample code snippet I tried.
C#:
protected void Page_PreRender(object sender, EventArgs e){ if (RadGrid1.SelectedIndexes.Count == 0) RadGrid1.SelectedIndexes.Add(0); if (RadGrid2.SelectedIndexes.Count == 0) { RadGrid2.Rebind(); RadGrid2.SelectedIndexes.Add(0); }}protected void RadGrid1_ItemCommand(object sender, GridCommandEventArgs e){ RadGrid2.SelectedIndexes.Clear();}protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e){ string selectQuery1 = "SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, PostalCode FROM Customers"; SqlDataAdapter adapter1 = new SqlDataAdapter(selectQuery1, conn); conn.Open(); DataTable dt1 = new DataTable(); adapter1.Fill(dt1); conn.Close(); RadGrid1.DataSource = dt1; }public static string Customerid = "ALFKI";protected void RadGrid2_NeedDataSource(object sender, GridNeedDataSourceEventArgs e){ string selectQuery2 = "SELECT [OrderID], [OrderDate], [CustomerID], [ShipCountry] FROM [Orders] WHERE ([CustomerID] = '" + Customerid + "')"; SqlDataAdapter adapter1 = new SqlDataAdapter(selectQuery2, conn); conn.Open(); DataTable dt2 = new DataTable(); adapter1.Fill(dt2); conn.Close(); RadGrid2.DataSource = dt2; }public static string Orderid = "10643";protected void RadGrid3_NeedDataSource(object sender, GridNeedDataSourceEventArgs e){ string selectQuery3 = "SELECT [OrderID], [UnitPrice], [Quantity], [Discount] FROM [Order Details] WHERE ([OrderID] = '"+Orderid+"')"; SqlDataAdapter adapter1 = new SqlDataAdapter(selectQuery3, conn); conn.Open(); DataTable dt3 = new DataTable(); adapter1.Fill(dt3); conn.Close(); RadGrid3.DataSource = dt3; } protected void RadGrid1_SelectedIndexChanged(object sender, EventArgs e){ Customerid = (RadGrid1.SelectedItems[0] as GridDataItem).GetDataKeyValue("CustomerID").ToString();}protected void RadGrid2_SelectedIndexChanged(object sender, EventArgs e){ Orderid = (RadGrid2.SelectedItems[0] as GridDataItem).GetDataKeyValue("OrderID").ToString();}Thanks,
Shinu.
0
Steve
Top achievements
Rank 2
answered on 05 Feb 2013, 04:57 PM
Thank you very much for your solution, I just have a few problems to get this adjusted to my environment.
1.) The grid does not load on page load.
2.) When I force it to load on page load, the second grid does not populate, actually not of the change events seem to fire.
3.) Paging does not work, when I click on another page, grid is gone.
I am sure I am missing something. I will include all my code.
ASPX:
C#:
Again, thank you for your excellent support.
1.) The grid does not load on page load.
2.) When I force it to load on page load, the second grid does not populate, actually not of the change events seem to fire.
3.) Paging does not work, when I click on another page, grid is gone.
I am sure I am missing something. I will include all my code.
ASPX:
<telerik:RadScriptManager runat="server" ID="RadScriptManager1" /> <telerik:RadSkinManager ID="QsfSkinManager" runat="server" ShowChooser="true" /> <telerik:RadFormDecorator ID="QsfFromDecorator" runat="server" DecoratedControls="All" EnableRoundedCorners="false" /> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadGrid1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1"></telerik:AjaxUpdatedControl> <telerik:AjaxUpdatedControl ControlID="RadGrid2"></telerik:AjaxUpdatedControl> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="RadGrid2"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid2"></telerik:AjaxUpdatedControl> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <h3>Customers:</h3> <telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="true" PageSize="5" OnItemCommand="RadGrid1_ItemCommand"> <ClientSettings AllowKeyboardNavigation="true" EnablePostBackOnRowClick="true"> <Selecting AllowRowSelect="true"></Selecting> </ClientSettings> <MasterTableView DataKeyNames="UIDREPORT"> </MasterTableView> <PagerStyle Mode="NextPrevAndNumeric"></PagerStyle> </telerik:RadGrid> <br /> <br /> <h3>Orders:</h3> <telerik:RadGrid ID="RadGrid2" ShowStatusBar="true" runat="server" AllowPaging="True" PageSize="5" > <MasterTableView Width="100%" AutoGenerateColumns="False" > <Columns> <telerik:GridBoundColumn DataField="UIDREPORT" DataType="System.Int32" HeaderText="UIDREPORT" ReadOnly="True" SortExpression="UIDREPORT" UniqueName="UIDREPORT"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="RPTNAME" DataType="System.String" HeaderText="RPTNAME" SortExpression="RPTNAME" UniqueName="RPTNAME" DataFormatString="{0:d}"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="RPTTITLE" HeaderText="RPTTITLE" SortExpression="RPTTITLE" UniqueName="RPTTITLE"> </telerik:GridBoundColumn> </Columns> </MasterTableView> <ClientSettings AllowKeyboardNavigation="true" EnablePostBackOnRowClick="true"> <Selecting AllowRowSelect="true"></Selecting> </ClientSettings> <PagerStyle Mode="NextPrevAndNumeric"></PagerStyle> </telerik:RadGrid>C#:
public partial class WSS : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //BindProcesses("ESTIMATIONS", "", "", ""); } } private void BindProcesses(string processType, string processName, string startTime, string stopTime) { AccountMDMDB accountMDB = new AccountMDMDB(); DataTable dt = accountMDB.getProcesses(processType, processName, startTime, stopTime); RadGrid1.DataSource = dt; } protected void Page_PreRender(object sender, EventArgs e) { if (RadGrid1.SelectedIndexes.Count == 0) RadGrid1.SelectedIndexes.Add(0); if (RadGrid2.SelectedIndexes.Count == 0) { RadGrid2.Rebind(); RadGrid2.SelectedIndexes.Add(0); } } protected void RadGrid1_ItemCommand(object sender, GridCommandEventArgs e) { RadGrid2.SelectedIndexes.Clear(); } protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e) { AccountMDMDB accountMDB = new AccountMDMDB(); DataTable dt = accountMDB.getProcesses("ESTIMATIONS", "", "", ""); RadGrid1.DataSource = dt; } public static string Uid = "2233"; protected void RadGrid2_NeedDataSource(object sender, GridNeedDataSourceEventArgs e) { AccountMDMDB accountMdb = new AccountMDMDB(); DataTable dt2 = accountMdb.getReports(Uid); RadGrid2.DataSource = dt2; } protected void RadGrid1_SelectedIndexChanged(object sender, EventArgs e) { Uid = (RadGrid1.SelectedItems[0] as GridDataItem).GetDataKeyValue("UIDREPORT").ToString(); Label1.Text = Uid; }}0
Accepted
Shinu
Top achievements
Rank 2
answered on 06 Feb 2013, 04:47 AM
Hi Steve,
Please make sure that you are attaching the NeedDataSource event for both the RadGrid and SeletedIndexChanged event for the first RadGrid1 in the ASPX as follows.
ASPX:
Thanks,
Shinu.
Please make sure that you are attaching the NeedDataSource event for both the RadGrid and SeletedIndexChanged event for the first RadGrid1 in the ASPX as follows.
ASPX:
<telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="true" PageSize="5" OnItemCommand="RadGrid1_ItemCommand" OnNeedDataSource="RadGrid1_NeedDataSource1" OnSelectedIndexChanged="RadGrid1_SelectedIndexChanged1"> . . .</telerik:RadGrid><telerik:RadGrid ID="RadGrid2" ShowStatusBar="true" runat="server" AllowPaging="True" PageSize="5" OnNeedDataSource="RadGrid2_NeedDataSource1">. . .</telerik:RadGrid>Thanks,
Shinu.
0
Steve
Top achievements
Rank 2
answered on 06 Feb 2013, 02:20 PM
Thank you so very much !! That did it. I overlooked that completely.
Your support rocks!!
Your support rocks!!