1

Eval を使用すると、構文エラーは発生しません

<asp:TextBox ID="txtHaulZoneCodeWIL" runat="server" CssClass="cagText" Text='<%#ConvertHaulZoneCodeForDisplay(Eval("HaulZoneCodeWIL").ToString())%>'></asp:TextBox>

このステートメントにバインドを使用すると、「名前バインドが宣言されていません」というエラーが表示されます

<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
4

1 に答える 1

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>**

これを参照してください。コード

  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 を使用して値をバインドし、値に何らかの変更を加えると、データベースにも反映されます。

ここで同様の投稿を見ることができます

ASP.NET の <%# Bind("") %> と <%# Eval("") %> の違いは何ですか?

于 2013-03-31T19:43:54.953 に答える