我的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中删除值。希望这会帮助很多像我一样陷入困境的人。
答案 0 :(得分:3)
您可以通过在PageLoad或PageInit上注入Javascript来更改控件的值。只是说GetValueDummy()
方法是计算值的方法,而你正在使用jQuery。
您需要在Page.Load处理程序中为页面注入一个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
答案 1 :(得分:1)
这样给它:
<input type="text" name="email" id="MyInput" runat="server" />
像这样访问它:
string MyInput= myTextBox.Value;
对不起上述答案:
以下是编辑:
this.Init += Page_Init;
this.Load += Page_Load;
protected void Page_Init(object sender, System.EventArgs e)
{
createControls();
}
protected void Page_Load(object sender, System.EventArgs e)
{
if (IsPostBack)
{
setcontrolvalues();
}
}
private void createControls()
{
TextBox txt1 = new TextBox();
TextBox txt2 = new TextBox();
txt1.ID = "txt1";
txt1.EnableViewState = true;
txt2.EnableViewState = true;
txt2.ID = "txt2";
PlaceHolder1.Controls.Add(txt1);
PlaceHolder1.Controls.Add(txt2);
}
private void setcontrolvalues()
{
TextBox txt1 = null;
TextBox txt2 = null;
txt1 = (TextBox)(PlaceHolder1.FindControl("txt1"));
txt1.Text = "text1";
txt2 = (TextBox)(PlaceHolder1.FindControl("txt2"));
txt2.Text = "text2";
答案 2 :(得分:0)
这样做:
<input type="text" ID="txtID" runat="server" />
msdn声称以下内容有效:
<input
Type="Password|Text"
EnableViewState="False|True"
Id="string"
Visible="False|True"
OnDataBinding="OnDataBinding event handler"
OnDisposed="OnDisposed event handler"
OnInit="OnInit event handler"
OnLoad="OnLoad event handler"
OnPreRender="OnPreRender event handler"
OnServerChange="OnServerChange event handler"
OnUnload="OnUnload event handler"
runat="server"
/>
如果“没有帮助”,问题可能与标记无关!