2012-03-27 14 views
1

在GridView1的RowDataBound我怎麼能得到這樣的:Gridview:從ID = rowEditIndex的數據庫數據表單元格中獲取值,方法如何?

SELECT * FROM tableName WHERE Column AND DataTableID=RowEditIndex. 

我試圖從當前編輯行的dataTable得到一個單元格的值。所以他需要從gridview的當前編輯行的dattable的某個單元格中獲取值。

我需要正確的sql語句,我需要它在rowDataBound gridview因爲我有另一個代碼。

感謝

回答

3

可以實現對GridView控件這個使用數據鍵,如下所示:

<asp:GridView ID="GridView1" runat="server" DataKeyNames="SomeID, SomeOtherColumn" OnRowDataBound="GridView1_RowDataBound" ...> 

而在後臺代碼:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    int someID = (int)GridView1.DataKeys[e.Row.RowIndex]["SomeOtherColumn"]; 

    //do whatever you need to do with the value 
} 

編輯 :下面是一個如何訪問中的數據密鑰的示例0事件:

protected void TaskGridView_RowUpdating(object sender, GridViewUpdateEventArgs e) 
{ 
    var someValue = GridView1.DataKeys[e.RowIndex]["SomeOtherColumn"].ToString(); 
} 

您也可以通過DataItem屬性訪問在RowDataBound事件的價值:

int someID = (int)DataBinder.Eval(e.Row.DataItem, "SomeID"); 
+0

item.rowindex在rowdatabound中不存在:( – 2012-03-27 16:14:04

+0

對不起,我更正了我的答案。它應該是'e.Row.RowIndex'或'e.Row.DataItem',具體取決於您使用的是哪種解決方案。 – 2012-03-27 16:18:45

+0

好,所以與該代碼我得到列的編輯id行,現在,你可以告訴我什麼是正確的說法:SELECT * FROM tableName WHERE列和ID = someID「它是正確的? – 2012-03-27 16:41:43

0
using System.Linq; 

... 
... 


var myValue = myDataTable.AsEnumerable().where (r=>r["MYColumn"].ToString()==RowEditIndex.ToString()).select(a=>a["MYColumn"].ToString()) 
+0

嗯myDataTable應該是什麼?有沒有機會讓它容易理解? r-> r,可以計算,我從來沒有用過。謝謝 – 2012-03-27 16:06:37

相關問題