我在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
答案 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