当我使用Eval时,没有语法错误
<asp:TextBox ID="txtHaulZoneCodeWIL" runat="server" CssClass="cagText" Text='<%#ConvertHaulZoneCodeForDisplay(Eval("HaulZoneCodeWIL").ToString())%>'></asp:TextBox>
当我在这个语句中使用Bind时,我收到错误“未声明Name Bind”
<asp:TextBox ID="txtHaulZoneCodeWIL" runat="server" CssClass="cagText" Text='<%#ConvertHaulZoneCodeForDisplay(Bind("HaulZoneCodeWIL").ToString())%>'></asp:TextBox>
如何解决这个问题。我想只使用Bind,而不是EVAL,因为Bind是双向的
在代码隐藏中我写的是这样的:
Protected Function ConvertHaulZoneCodeForDisplay(ByRef str As String) As String
If str <> "0" Then
Return str
Else
Return ""
End If
End Function
答案 0 :(得分:0)
修改强> 试试这种方式
<asp:Label ID="Label123" **Visible="False"** runat="server" CssClass="cagText" Text='<%#ConvertHaulZoneCodeForDisplay(Bind("HaulZoneCodeWIL").ToString())%></asp:Label >
**<asp:TextBox ID="txtHaulZoneCodeWIL" runat="server" CssClass="cagText" %></asp:TextBox>**
看到这个.. Vb。代码
Protected Sub DetailsView1_DataBound(ByVal sender As Object, ByVal e As EventArgs)
Label lablehide=(Label) DetailsView1.FindControl("Label123")
TextBox _txtHaulZoneCodeWIL=(TextBox) DetailsView1.FindControl("txtHaulZoneCodeWIL")
**_txtHaulZoneCodeWIL.Text=ConvertHaulZoneCodeForDisplay(lablehide.Text)**
End Sub
这种方法错了。所以只需改变它
Protected Function ConvertHaulZoneCodeForDisplay(ByRef str As String) As String
If str <> "0" Then
Return str
End If
Return ""
End Function
然后请参考
Eval是单向绑定,但Bind是双向的
如果使用Eval绑定值,则它类似于只读。您只能查看数据。
如果使用Bind绑定值,并且如果对值进行某些更改,它也会反映在数据库上
你可以在这里看到类似的帖子
What is the difference between <%# Bind("") %> and <%# Eval("") %> in ASP.NET?