动态更改TemplateField Value服务器端

时间:2014-11-10 08:49:37

标签: asp.net vb.net gridview templatefield

我在ASP.Net Application中有一个网格视图,里面我有TemplateField,如下所示:

   <Columns>
      <asp:TemplateField HeaderText="Test Text" SortExpression="MyField">
           <ItemTemplate>
                <%# Eval("MyField")%>
           </ItemTemplate>
      </asp:TemplateField>
   </Columns>

如何访问<%# Eval("MyField")%>服务器端并更改其值?例如,假设<%# Eval("MyField")%>的值为“OK”,我想动态更改为“Not OK”服务器端?并且请记住,我不想在TemplateField中使用任何服务器端控件。 这是我试图做的,但它不起作用!:

        If e.Row.RowType = DataControlRowType.DataRow Then
                For i As Integer = 0 To e.Row.Cells.Count - 1
                    If Not String.IsNullOrEmpty(e.Row.Cells(i).Text) Then
                        e.Row.Cells(i).Text = "Not OK"
                    End If
                Next
        End If

1 个答案:

答案 0 :(得分:0)

试试这个:

使用模板添加标签对您来说很容易

<Columns>
      <asp:TemplateField HeaderText="Test Text" SortExpression="MyField">
           <ItemTemplate>
               <asp:Label id="mylabl" runat="server" 
               Text='<%# Eval("MyField")%>' />
           </ItemTemplate>
      </asp:TemplateField>
   </Columns>

服务器端

 If e.Row.RowType = DataControlRowType.DataRow Then
                For i As Integer = 0 To e.Row.Cells.Count - 1
 Dim mylabl As String = _
              CType(e.Row.FindControl("mylabl"),Label).Text

                    If Not String.IsNullOrEmpty(mylabl ) Then
                        mylabl.Text = "Not OK"

                    End If
                Next
        End If