2014-09-05 56 views
1

我花了最近幾個小時試圖解決這個問題,我想這是一個簡單的解決方案。 但是我還沒有找到解決方案。Telerik RadGrid - 從ItemUpdate事件欄獲取值

在我的網IM使用:

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. 
} 

我寧願如果我能有存儲在一個INT的ID。

int i = e.Somthing.Something.Darkside; 

我已經搜遍了很多,沒有成功,我希望有人能在這個美好的星期五來救我。

如果我沒有意義,我很抱歉,英語不是我的主要語言,我的思維方式可能會關閉(查看應該簡單3小時的事情對您來說不是這樣嗎?)。

+0

MichaelA - 基於你到目前爲止的兩個答案,你想要行的索引還是列「Id」的值? – DanM7 2014-09-05 18:17:27

+0

@DanM Hi DanM我在找的是「id」這一列,所以Jayesh Goyani的解決方案做到了這一點。 – MichaelA 2014-09-08 13:55:16

回答

1

請嘗試使用下面的代碼片段。

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 
} 

讓我知道如果我不明白你的要求。

+0

就像我想要的那樣工作,謝謝! – MichaelA 2014-09-08 13:56:15

0

在爲RadGrid1_UpdateCommand事件處理程序,獲取當前的項目,然後從那裏你可以計算出該項目的行索引:

GridEditableItem editItem = e.Item as GridEditableItem; 
int myIndex = (editItem.RowIndex/2) - 1; 

RowIndex值是2的倍數,並且是那種基於1的的(從1開始,而不是零)。因此,通過這種計算,您可以得到以下(我認爲您會期望的結果):

 
RowIndex myIndex 
2   0 
4   1 
6   2 
...