可以声明性地设置TextBox文本吗?

时间:2009-12-07 16:55:24

标签: c# asp.net webforms

我试图以声明方式将TextBox控件的Text属性设置为变量的值。 我发现将设置text属性的唯一方法是将其放在代码隐藏页面中,这是我要避免的。

我试图做以下所有事情,但没有成功:

<asp:TextBox ID="myTxt" runat="server" Text='<%# MyNamespace.MyClass.StaticString %>' />
<asp:TextBox ID="myTxt" runat="server" Text='<%= MyNamespace.MyClass.StaticString %>' />
<asp:TextBox ID="myTxt" runat="server" Text='<% Response.Write(MyNamespace.MyClass.StaticString); %>' />
<asp:TextBox ID="myTxt" runat="server" /><% myTxt.Text = MyNamespace.MyClass.StaticString; %>

这是否可能,如果是这样的话?

3 个答案:

答案 0 :(得分:7)

这是最好的方法。

<asp:TextBox ID="myTxt" runat="server" Text='<%# MyNamespace.MyClass.StaticString %>' />

你说你试过了,但诀窍是你必须在页面本身上调用DataBind()。 &lt;%#%&gt;是一个数据绑定表达式,当调用DataBind()时,将填充该值。

您可以在文本框本身上调用DataBind,但最好是在页面上调用以获取所有内容(递归工作​​)。你想要保持一致并且只在页面上调用它'因为在控件上多次调用DataBind()可能会产生负面后果(列表中的重复数据等)。

答案 1 :(得分:0)

试试以下内容。

<asp:TextBox ID="myTxt" runat="server"></asp:TextBox> <% myTxt.Text= " Whatever you want"  %>

答案 2 :(得分:-1)

首先,给每个文本框添加自己的ID。该ID应该在页面上的所有元素中都是唯一的。

然后在后面的代码中(尝试开始页面的加载事件),你会想要这样的东西:

myTxt.Text = MyNamespace.MyClass.StaticString

编辑: 你试过这个吗?

<asp:TextBox ID="myTxt" runat="server"><% CodeBehind.FunctionOrProperty %></asp:TextBox>