2011-03-07 86 views
3

我不得不在C#CodeBehind中創建一個GridView 100%。我把它選擇行和回發使用此代碼:從CodeBehind選擇行和回發的GridView

void dataGrid_ItemCreated(object sender, DataGridItemEventArgs e) 
    { 
     if (e.Item.ItemType == ListItemType.AlternatingItem || 
      e.Item.ItemType == ListItemType.Item) 
     { 
      e.Item.Attributes.Add("onmouseover", 
        "this.style.backgroundColor='beige';this.style.cursor='pointer'"); 
      e.Item.Attributes.Add("onmouseout", 
        "this.style.backgroundColor='#FFFFFF';"); 
      e.Item.Attributes.Add("onclick", "javascript:__doPostBack" + 
        "('_ctl0$DataGrid1$_ctl" + 
        ((Convert.ToInt32(e.Item.ItemIndex.ToString())) + 2) + 
        "$_ctl0','')"); 
     } 
    } 

但這回發,但隨後如何獲取用戶點擊該行的ID?

回答

1
void dataGrid_ItemCreated(object sender, DataGridItemEventArgs e) 
    { 
     if(e.Item.ItemType == ListItemType.Item) 
     { 
      var item = e.Item.DataItem; // <- entity object that's bound, like person 
      var itemIndex = e.Item.ItemIndex; // <- index 
     } 

    } 
0

您可以通過在第二paramater的參數__doPostBack

__doPostBack(controlname, yourid); 

所以填充在這裏:

e.Item.Attributes.Add("onclick", "javascript:__doPostBack" + 
    "('_ctl0$DataGrid1$_ctl" + 
    ((Convert.ToInt32(e.Item.ItemIndex.ToString())) + 2) + 
    "$_ctl0','PUT YOUR VALUE HERE')"); 

然後你就可以通過事件參數的訪問。

+0

我把「Hello」作爲我的價值,點擊了行,看了一下Page_Load上的EventArgs e,但它是空的。 – user390480 2011-03-08 13:09:01