Абстрактное значение из ячейки Gridview, созданное функцией в шаблонах элементов - PullRequest
1 голос
/ 30 августа 2010

У меня проблемы с получением значения ячейки в виде сетки.

Я думаю, что это может иметь какое-то отношение к шаблону элемента, вызывающему функцию, поскольку я могу получить значения ячеек, которые не вызывают функцию в одном и том же виде сетки.

Как мне извлечь отображаемое значение из этой ячейки?

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
         GridViewRow row = GridView1.SelectedRow;
         lblTest.Text=row.Cells[7].Text; 

}

 <ItemTemplate>

    <%# GetWednesday(decimal.Parse(Eval("Wed").ToString())).ToString("N2") %>

 </ItemTemplate>

1 Ответ

0 голосов
/ 30 августа 2010

Изменить:

Пошарив еще немного, кажется, ваш контент есть, но не как текст. Это DataBoundLiteralControl в коллекции Controls клетки. Вы можете получить значение с помощью:

var value = (row.Cells[7].Controls[0] as DataBoundLiteralControl).Text.Trim();

Использование функции Trim() необходимо для удаления начальных и конечных пробелов выше и ниже оператора связывания в вашем шаблоне.

Я все еще предпочитаю подход, описанный ниже.

Конец

Если я правильно понимаю, я думаю, что ваше значение не сохраняется в ViewState.

Вы можете получить свой текст с помощью этого альтернативного подхода:

<ItemTemplate>
    <asp:Label ID="mylabel" runat="server" 
               Text='<%# GetWednesday(decimal.Parse(Eval("Wed").ToString())).ToString("N2") %>' />
</ItemTemplate>

И из кода позади:

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
     var label = GridView1.SelectedRow.FindControl("mylabel") as Label;
     lblTest.Text = label.Text; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...