我的 ASPX 页面中有一个 HTML 输入框,如下所示
<input id="txtID" runat="Server" type="text" />
现在我有一些用 C# codebehind 编写的代码来计算一个值,我希望该值显示在上面的 TextBox 中。
我已经试过了
txtID.Value = Number.ToString();
和
HtmlGenericControl ct = new HtmlGenericControl();
ct.InnerHTML = Number.ToString();
txtID.Controls.Add(ct);
但是上面两个好像都没有设置文本框的显示文字。
谁能帮我弄清楚如何完成它。 我不能使用
<asp:TextBox />
编辑(正确答案): 我最初尝试做的方式是正确的,即
txtID.Value = Number.ToString();
罪魁祸首是 Placeholder Plugin,它被调用并从 TextBox 中删除值。希望这能帮助很多像我一样被困在这些愚蠢地方的人。
最佳答案
您可以通过在 PageLoad 或 PageInit 上注入(inject) Javascript 来更改控件的值。只要说 GetValueDummy()
方法是您计算值的方法,并且您正在使用 jQuery。
您需要在 Page.Load 处理程序中向页面注入(inject) javascript。
protected void Page_Load(object sender, EventArgs e)
{
var script = "$('#txt').val('" + GetValueDummy() + "');";
ClientScript.RegisterStartupScript(typeof(string), "textvaluesetter", script, true);
}
在此代码中,txt 是您输入的 id。
如果您不使用 jQuery,只需将脚本变量的值替换为
var script = "document.getElementById('txt').value = '" + GetValueDummy() + "';";
在某个时间点之后,您的页面将完全呈现并准备好发送给客户端。所以你不能直接从 C# 修改它。您可以在此处阅读有关页面生命周期的更多信息:http://msdn.microsoft.com/en-us/library/ms178472.aspx
关于c# - 使用 C# 设置 HTML 输入文本框的显示文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9148161/