доступ к скрытому полю gridview - PullRequest
2 голосов
/ 09 сентября 2010

'/>

Я хочу получить доступ к значению в скрытом поле в моем коде позади.Я знаю, что мне нужно сделать это, когда предмет связан, но я не могу понять, как это сделать.

protected void addLabelsWhereNeeded(object sender, EventArgs e)
{

   // Get Value from hiddenfield
}

Ответы [ 3 ]

1 голос
/ 09 сентября 2010

Попробуйте добавить

OnRowDataBound="addLabelsWhereNeeded"

в GridView.Затем приведите элемент управления в соответствующей ячейке к HiddenField, чтобы получить значение:

protected void addLabelsWhereNeeded(object sender, GridViewRowEventArgs e)
{
    HiddenField hf = e.Row.Cells[0].Controls[1] as HiddenField;
    String theValue = hf.Value;
}

, предполагая, что вы определили свой GridView как:

<asp:GridView runat="server" ID="gv" OnRowDataBound="addLabelsWhereNeeded"> 
    <Columns>
        <asp:TemplateField> 
          <ItemTemplate>
                <%--your hidden field--%>
          </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView> 

Просто убедитесь, что вы проиндексировалиправильная ячейка и правильный контроль в этой ячейке.

0 голосов
/ 09 сентября 2010

Я понимаю, чего вы хотите достичь с помощью этого частного поля при привязке данных? В событии RowDataBound вы можете получить доступ ко всему элементу данных, поэтому нет необходимости использовать скрытое значение.

псевдокод:

protected void Grid1_RowDataBound(object sender, GridViewRowEventArgs)
{
 if(e.RowType == RowType.DataRow)
 {

 }
}

Установите точку останова в предложении if и используйте quickwatch, чтобы увидеть, как вам нужно привести DataItem, который в настоящее время обязан получить полный доступ ко всем свойствам, даже если они не связаны ни с одним элементом управления.

0 голосов
/ 09 сентября 2010

да, вы правы.Вы должны сделать это на ItemDateBound.Проверьте, что это должно работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...