GridView из CodeBehind выберите строку и обратную передачу - PullRequest
3 голосов
/ 08 марта 2011

Мне нужно создать GridView 100% в C # CodeBehind.У меня есть выбор строки и повторная отправка с использованием этого кода:

    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','')");
        }
    }

Это отправляет обратно, но тогда как мне получить идентификатор строки, по которой щелкнул пользователь?

Ответы [ 2 ]

1 голос
/ 08 марта 2011
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 голосов
/ 08 марта 2011

Вы можете передать аргумент во втором параметре в __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')");

Затем вы можете получить к нему доступ через аргументы события.

...