English 中文(简体)
如何在没有代码隐藏的情况下将方法的输出分配给文本框值
原标题:
  • 时间:2008-08-30 15:09:06
  •  标签:

如何在没有代码隐藏的情况下将方法的输出分配给文本框值?

<%@ 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>

导致编译错误。

最佳回答

.ASPX文件中有几种不同的表达式类型。有:

<%= TextFromMethod %>

它只是保留一个文本控件,并在渲染时输出文本。

然后是:

<%# TextFromMethod %>

它是一个数据绑定表达式,当控件为DataBound()时进行求值。还有表达式生成器,比如:

<%$ ConnectionStrings:Database %>

但这在这里并不重要。。。。

因此,<;%=%>方法不起作用,因为它会试图将Literal插入.Text属性。。。显然,不是你想要的。

<;%#%>方法不起作用,因为TextBox不是DataBound,它的任何父级也不是。如果你的TextBox在Repeater或GridView中,那么这个方法就可以了。

那么,该怎么办?只需在某个时刻调用TextBox.DataBind()即可。或者,如果您有多个控件,只需在Page_Load中调用Page.DataBind()

Private Function Page_Load(sender as Object, e as EventArgs)
   If Not IsPostback Then
      Me.DataBind()
   End If
End Function
问题回答

您是否尝试使用HTML控件而不是服务器控件?它是否也会导致编译错误?

<input type="text" id="TextBox4" runat="server" value="<%=TextFromString%>" />




相关问题
热门标签