How can I access the the rows selected in a WebDataGrid on the server side?
For example, I have a WebDataGrid and I've enabled the Selection behavior fot it. I want the user to be able to select a row in the WebDataGrid then click a button which calls server side code to process the selected row (i.e. getting the values of some of the columns of the selected row).
I think I need to use the SelectedRowsCollection somehow, but not sure how to use it with my WebDataGrid.
Thanks,
John
Alex,
I'm one step closer, but I can't seem to read the records in the SelectedRows collection. Here's my sample code. When I run it, the selectedRow variable returns null. When I'm debugging, I do see one record selected in wdgFabric.Behaviors.Selection.SelectedRows.
Am I doing something wrong?
// inside my button_clicked method - after I've selected a row
string tmp; if (wdgFabric.Behaviors.Selection.SelectedRows.Count > 0) { foreach (GridRecord selectedRow in wdgFabric.Behaviors.Selection.SelectedRows) // errors out here with selectedRow returning null { tmp = selectedRow.Items.GetValue(1).ToString(); foreach (GridRecordItem selectedRowItem in selectedRow.Items) { Label2.Text = selectedRowItem.Text.ToString(); } } }
I am encountering the same problem. The row is alway, in my case, Nothing. I can assure you that it is really frustrating to do something so simple when it isn't working. I hope you can find my problem.
I pass you the code behind:
Protected Sub lnkbtnEditar_Clicked(ByVal sender As Object, ByVal e As EventArgs) For Each row As GridRecord In WebDataGrid1.Behaviors.Selection.SelectedRows If Not (row Is Nothing) Then Dim iCount As Integer = row.Items.Count End If NextEnd Sub
The aspx page code:
<ig:WebDataGrid ID="WebDataGrid1" runat="server" DataKeyFields="ID" StyleSetName="Claymation" AutoGenerateColumns="False" Width="260px" StyleSetPath="~/ig_res"><Columns> <ig:TemplateDataField Key="Año" Width="50px"> <ItemTemplate> <asp:Label ID="lblAño" runat="server"><%#DataBinder.Eval(CType(Container, Infragistics.Web.UI.TemplateContainer).DataItem, "Año")%></asp:Label> </ItemTemplate> <Header Text="Año" /> </ig:TemplateDataField> <ig:TemplateDataField Key="Fecha inicial" Width="81px"> <ItemTemplate> <asp:Label ID="lblIniVig" runat="server"><%#DataBinder.Eval(CType(Container, Infragistics.Web.UI.TemplateContainer).DataItem, "IniVig")%></asp:Label> </ItemTemplate> <Header Text="Fecha inicial" /> </ig:TemplateDataField> <ig:TemplateDataField Key="Fecha final" Width="81px"> <ItemTemplate> <asp:Label ID="lblFinVig" runat="server"><%#DataBinder.Eval(CType(Container, Infragistics.Web.UI.TemplateContainer).DataItem, "FinVig")%></asp:Label> </ItemTemplate> <Header Text="Fecha final" /> </ig:TemplateDataField></Columns><Behaviors> <ig:Selection RowSelectType="Single" CellClickAction="Row"> <SelectionClientEvents RowSelectionChanged="WebDataGrid1_RowSelectionChanged" /> </ig:Selection> <ig:Sorting SortingMode="Single" Enabled="true"></ig:Sorting></Behaviors></ig:WebDataGrid>
<asp:LinkButton ID="lnkbtnEditar" runat="server" CausesValidation="false" OnClick="lnkbtnEditar_Clicked">Editar</asp:LinkButton>
<script language="javascript" type="text/javascript"> function WebDataGrid1_RowSelectionChanged(webDataGrid, evntArgs) { //for the moment do nothing}</script>
{
}
the foreach does not work, i think because of the forgotten implementation of ienumerable function.