Muh*_*tar 5 asp.net htmlcontrols
在代码后面的html控件中设置值而不进行服务器控制
<input type="text" name="txt" />
<!--Please note I don't want put 'runat="server"' here to get the control in code behind-->
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
Run Code Online (Sandbox Code Playgroud)
代码背后:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
//If I want to initlize some value in input, how can I set here
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Request["txt"] // Here I am getting the value of input
}
Run Code Online (Sandbox Code Playgroud)
Ada*_*ras 26
这个答案来自记忆,所以如果稍微偏离,我会道歉.
您可以做的是使用ASP.NET内联表达式在加载页面期间设置值.
首先,在页面的代码隐藏中添加一个属性.
protected string InputValue { get; set; }
Run Code Online (Sandbox Code Playgroud)
在这种情况Page_Load下,设置属性的值.
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
this.InputValue = "something";
}
}
Run Code Online (Sandbox Code Playgroud)
最后,在页面标记中添加内联表达式,如下所示:
<input type="text" name="txt" value="<%= this.InputValue %>" />
Run Code Online (Sandbox Code Playgroud)
这将允许您设置input元素的值而不使其成为服务器端标记.
Arn*_*ack 11
未设置runat ="server"的元素被视为纯文本,并收集到尽可能少的Literal对象(每个服务器端控件之间).我想如果你真的想要,你可以尝试在Page.Controls中找到正确的Literal(或者LiteralControl)对象,并对其进行修改,但我肯定会反对它.
将它设置为runat ="server"有什么可怕的?
是的,当然你也可以使用<%=%>.嵌入式代码块.它们在渲染时进行评估,因此这样做应该相对安全.
| 归档时间: |
|
| 查看次数: |
62891 次 |
| 最近记录: |