2010-08-11 2 views
1

У меня есть элемент управления GridView ASP.NET в веб-форме. Для простоты, я скажу, что это GridView определяется следующим образом:Получение значения невидимого столбца строки, связанной в GridView

<asp:GridView ID="myGridView" runat="server" AutoGenerateColumns="false" 
    AllowPaging="true" AllowSorting="true" PageSize="50" 
    OnRowDataBound="myGridView_RowBound" DataKeyNames="ID" 
    OnLoad="myGridView_Load" OnPageIndexChanging="myGridView_PageIndexChanging" 
    OnSorting="myGridView_Sorting"> 

    <Columns> 
    <asp:BoundField DataField="ID" Visible="false" /> 
    <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />        
    <asp:BoundField DataField="Age" HeaderText="Age" SortExpression="Age" /> 
    </Columns> 
</asp:GridView> 

Когда каждый из этих рядов связана (иначе во время мероприятия «myGridView_RowBound»), я хочу, чтобы получить ID, имя, и возрастные значения. Моя проблема в том, что я не могу понять, как получить значение «ID». Причина в том, что она находится в невидимом поле. Может ли кто-нибудь сказать мне, как получить значение

ответ

1

В вашем связанном с данными строкой данных вы можете получить доступ к ID через связанный элемент данных. Нет необходимости взаимодействовать с столбцами.

Например, если вы связали событие, связанное с данными строки.

void myGridView_RowBound(Object sender, GridViewRowEventArgs e) 
{ 

    if(e.Row.RowType == DataControlRowType.DataRow) 
    { 

     var item = e.Row.DataItem as T; 
     // where T is your item type 

     if (item != null) { 
      var id = item.ID; 
     } 

    } 

} 
3

Вы можете либо скрыть ячейку после привязки данных (onrowcreated), либо связать ее с привязкой, чтобы скрыть столбец.

Проверьте, пожалуйста, this article.

Смежные вопросы