C# 设置HTML输入文本框';使用C显示文本#

C# 设置HTML输入文本框';使用C显示文本#,c#,asp.net,html,html-input,C#,Asp.net,Html,Html Input,我的ASPX页面中有一个HTML输入框,如下所示 <input id="txtID" runat="Server" type="text" /> 及 但上述两项似乎都没有设置文本框的显示文本 谁能帮我弄清楚我该怎么做。 我不能用 <asp:TextBox /> 罪魁祸首是占位符插件,它正在被调用并从文本框中删除值。希望这能帮助很多像我这样被困在如此愚蠢的地方的人。这样做: <input type="text" ID="txtID" runat="server"

我的ASPX页面中有一个HTML输入框,如下所示

<input id="txtID" runat="Server" type="text" />

但上述两项似乎都没有设置文本框的显示文本

谁能帮我弄清楚我该怎么做。 我不能用

<asp:TextBox />
罪魁祸首是占位符插件,它正在被调用并从文本框中删除值。希望这能帮助很多像我这样被困在如此愚蠢的地方的人。

这样做:

<input type="text" ID="txtID" runat="server" />

声明称,以下各项将起作用:

<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"
    />

如果它“没有帮助”,问题可能不在标记上

这样说:

<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";

您可以通过在PageLoad或PageInit上注入Javascript来更改控件的值。只要说
GetValueDummy()
method是计算值的方法,您就可以使用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#修改它。您可以在此处阅读有关页面生存时间的更多信息:

尝试将type=“text”添加到您的输入中。您的代码如何调用?为什么不能使用
?@Hadas抱歉,我没有提到,但它已经包含在那里了。看这个@AndersAbel,我们有一个设计团队,他们已经创建了表单,一些后端人员正在填充表单,按照严格的说明,我们不能这样做。我不是说明确给出类型是个坏主意,但我不确定这是否有用。在没有类型的情况下,
text
是默认值,因此这没有什么区别。@MrLister完全正确。这没有帮助。这将设置输入控件的值属性,但不会更改显示文本。我曾经尝试过这样做。总之@DonNetter我在这里询问之前,在搜索解决方案时遇到了这段代码,我尝试过实现,但没有成功。谢谢你的努力,伙计,非常感谢你的帮助。如果你还有什么要我试试的,请告诉我。我很高兴能得到一个很好的解决方案。我已经为你转换了,但我不是一个C#guy,如果有任何错误,我很抱歉。@Piyus谢谢你的评论,如果我遇到这个解决方案,我肯定会放在这里,这可能会对你有所帮助。这是实现我想要实现的目标的一个非常好的方式。我刚弄明白我的问题是什么:这是一个Placeholer插件,它正在清除文本框中的值。
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";
protected void Page_Load(object sender, EventArgs e)
{
    var script = "$('#txt').val('" + GetValueDummy() + "');";
    ClientScript.RegisterStartupScript(typeof(string), "textvaluesetter", script, true);
}
var script = "document.getElementById('txt').value = '" + GetValueDummy() + "';";