1

コードビハインドなしでメソッドの出力をテキストボックスの値に割り当てるにはどうすればよいですか?

<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    Public TextFromString As String = "test text test text"
    Public TextFromMethod As String = RepeatChar("S", 50) 'SubSonic.Sugar.Web.GenerateLoremIpsum(400, "w")

    Public Function RepeatChar(ByVal Input As String, ByVal Count As Integer)
        Return New String(Input, Count)
    End Function
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>Test Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <%=TextFromString%>
        <br />
        <asp:TextBox ID="TextBox1" runat="server" Text="<%# TextFromString %>"></asp:TextBox>
        <br />
        <%=TextFromMethod%>
        <br />
        <asp:TextBox ID="TextBox2" runat="server" Text="<%# TextFromMethod %>"></asp:TextBox>        
    </div>   
    </form>
</body>
</html>

それは主に、デザイナーの人たちがaspxページでそれを使用できるようにするためでした。変数値をテキストボックスにプッシュするのは簡単なことのように思えます。

なぜか混乱することもあります

<asp:Label runat="server" ID="label1"><%=TextFromString%></asp:Label>

<asp:TextBox ID="TextBox3" runat="server">Hello</asp:TextBox>

動作しますが

<asp:TextBox ID="TextBox4" runat="server"><%=TextFromString%></asp:TextBox>

コンパイルエラーが発生します。

4

2 に答える 2

2

.ASPX ファイルには、いくつかの異なる式の種類があります。あります:

<%= TextFromMethod %>

これは単にリテラル コントロールを予約し、レンダリング時にテキストを出力します。

そして、次のとおりです。

<%# TextFromMethod %>

これは、コントロールが DataBound() の場合に評価されるデータバインディング式です。次のような式ビルダーもあります。

<%$ ConnectionStrings:Database %>

しかし、それはここではあまり重要ではありません....

したがって、この<%= %>メソッドは、リテラルを .Text プロパティに挿入しようとするため機能しません...明らかに、必要なものではありません。

<%# %>TextBox は DataBound ではなく、その親でもないため、メソッドは機能しません。TextBox が Repeater または GridView にある場合、このメソッドは機能します。

じゃあ何をすればいいの?TextBox.DataBind()ある時点で電話してください。または、複数のコントロールがある場合はPage.DataBind()Page_Load.

Private Function Page_Load(sender as Object, e as EventArgs)
   If Not IsPostback Then
      Me.DataBind()
   End If
End Function
于 2008-08-30T18:32:57.993 に答える
1

サーバーコントロールの代わりにHTMLコントロールを使用してみましたか?また、コンパイルエラーが発生しますか?

<input type="text" id="TextBox4" runat="server" value="<%=TextFromString%>" />
于 2008-08-30T17:15:11.723 に答える