我用这段代码创建文本框:
<div style="clear:left;">
<asp:TextBox TextMode="MultiLine" runat="server" ID="selectText" ReadOnly="true" Width="560px" Height="50px"></asp:TextBox>
</div>
我用这段代码填写:
elSelText.value = elSelText.value.substr(0, position) + chosenoption2.value + " ";
然后我尝试将文本框中的值发送到服务器,但它是空的!
protected void btnUseSelectClick(object sender, EventArgs e)
{
sourceDetails.SelectCommand += " and " + selectText.Text;
Session["FilterSelectCommand"] = sourceDetails.SelectCommand;
tableResults.DataBind();
}
根据建议,我添加了 AutoPostBack="true":
<div style="clear:left;">
<asp:TextBox TextMode="MultiLine" runat="server" AutoPostBack="true" ID="selectText" ReadOnly="true" Width="560px" Height="50px"></asp:TextBox>
</div>
但是没用
最佳答案
虽然这对我来说是新闻,但似乎 ReadOnly
属性不会跟踪来自客户端的更改。如果您想要“只读”功能但仍然在服务器上获取值,请将以下内容放入您的 Page_Load
方法:
selectText.Attributes.Add("readonly", "readonly");
并删除 ReadOnly
(和 AutoPostBack
) <asp:TextBox>
中的属性标签。
(来自:http://aspadvice.com/blogs/joteke/archive/2006/04/12/16409.aspx 和 http://forums.asp.net/t/1467081.aspx - 使用 Google 可以很快找到它)
关于c# - 用javascript填充后文本框为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14381636/