Telerik RadGrid-从ItemUpdate事件的列中获取值
本文关键字:获取 事件 RadGrid- ItemUpdate Telerik | 更新日期: 2023-09-27 18:20:50
我花了几个小时试图解决这个问题,我认为这是一个简单的解决方案。然而,我还没能找到解决方案。
在我的网格中,我使用:
AutoGenerateEditColumn="true"
当我在一行中按下编辑按钮时,我想在RadGrid1_UpdateCommand事件中进行自定义检查。
<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateEditColumn="true" DataSourceID="ObjectDataSource">
<MasterTableView CommandItemDisplay="Top" AllowAutomaticUpdates="true" DataSourceID="ObjectDataSource" DataKeyNames="Id">
<Columns>
<telerik:GridBoundColumn DataField="Id" DataType="System.Int32" FilterControlAltText="Filter Id column" HeaderText="Id" SortExpression="Id" UniqueName="Id" Display="false" ReadOnly="true">
<telerik:GridBoundColumn DataField="Name" FilterControlAltText="Filter Name column" HeaderText="Name" SortExpression="Name" UniqueName="Name"/>
</Columns>
</MasterTableView>
</telerik:radGrid>
因此,在我的后端,我挂接了这样的事件:
protected void RadGrid1_UpdateCommand(object sender, GridCommandEventArgs e) {
// Get the ID for the specific row which had the "Edit" link pressed.
}
我更希望我能把ID存储在内部中
int i = e.Somthing.Something.Darkside;
我到处寻找都没有成功,我希望有人能在这个晴朗的星期五来救我。
如果我说不通的话,我很抱歉,英语不是我的主要语言,我的思维方式可能会改变(看一个本应简单的东西3个小时,对你来说是这样吗?)。
请尝试使用以下代码片段。
protected void RadGrid1_UpdateCommand(object sender, GridCommandEventArgs e)
{
GridEditableItem item = e.Item as GridEditableItem;
int Id = Convert.ToInt32(item.GetDataKeyValue("Id").ToString());
//Access edit row ID value here -- using datakey
string Name = (item["Name"].Controls[0] as TextBox).Text;
// Get Name field updated value here
int index = item.ItemIndex;
// Access edit row index here
}
如果我不理解你的要求,请告诉我。
在RadGrid1_UpdateCommand
的事件处理程序中,获取当前项目,然后可以从中计算项目的行索引:
GridEditableItem editItem = e.Item as GridEditableItem;
int myIndex = (editItem.RowIndex / 2) - 1;
RowIndex
值是2的倍数,有点基于1(从1开始,而不是零)。因此,通过这种计算,你会得到以下结果(我认为这是你所期望的):
行索引myIndex2 04 16 2。。。