3

ASPXページに次のようなHTML入力ボックスがあります

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

これで、値を計算するC#コードビハインドで記述されたコードがあり、その値を上記のTextBoxに表示したいと思います。

私はすでに試しました

txtID.Value = Number.ToString();

HtmlGenericControl ct = new HtmlGenericControl();
ct.InnerHTML = Number.ToString();
txtID.Controls.Add(ct);

しかし、上記の両方がテキストボックスの表示テキストを設定していないようです。

誰かが私がそれをどのように行うかについて理解するのを手伝ってくれますか?使えない

<asp:TextBox />

編集(正解あり): 私が最初にやろうとしていた方法は正しかった、つまり

txtID.Value = Number.ToString();

犯人は、呼び出されてTextBoxから値を消去していたPlaceholderPluginでした。これが私のような愚かな場所で立ち往生している多くの人々に役立つことを願っています。

4

3 に答える 3

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をご覧ください。

于 2012-02-05T10:18:02.417 に答える
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";
于 2012-02-05T09:25:30.390 に答える
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"
    />

「役に立たない」場合は、マークアップに問題がない可能性があります。

于 2012-02-05T09:20:25.597 に答える