0

ネット Web サイトでは、データグリッド コントロール内にテキスト ボックス コントロールがあります。

データグリッドのテキストボックス内の値を合計し、その追加をグリッド外のラベルに表示する必要がある javascript に textchange イベントを追加したいと思います。

コードビハインド(* .cs)でも同じ追加を行いたいと思います

ただし、分離コードは、ブラウザが JavaScript をサポートしていない場合にのみ実行されます。これは、ブラウザが JavaScript をサポートしている場合、サーバー側のコードではなく、クライアント側の JavaScript のみを実行する必要があることを意味します。

4

1 に答える 1

0

テキストボックスを EditItemTemplate として使用していますか? その場合は、EditItemTemplate のテキスト ボックス内に、以下のように OnTextChanged イベントを追加Textbox1_OnTextChangedします。

<asp:DataGrid ID="Grid" runat="server">
        <Columns>
            <asp:TemplateColumn>
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox1" runat="server" OnLoad="TextBox1_Load" OnTextChanged="Textbox1_OnTextChanged"></asp:TextBox>
                </EditItemTemplate>
            </asp:TemplateColumn>
        </Columns>
    </asp:DataGrid>

その後、サーバー側で値を合計できます。

また、以下のように、テキスト ボックスのクライアント側イベントをバインドするために、テキスト ボックスの EditItemTemplate に Load イベント (Textbox1_OnLoad) を追加する必要があります。

 protected void TextBox1_Load(object sender, EventArgs e)
    {
        TextBox newTb = sender as TextBox;
        if (newTb != null)
        {
            newTb.Attributes.Add("onChange", "sumup(this)");
        }
    }

Javascript では、sumup イベントを処理し、このオブジェクトを使用してテキスト ボックスの値を取得し、値を追加できます。JavaScript がサポートされている場合は合計が計算され、sumup 関数の最後で false を返してポストバックを停止する必要があります。

JavaScript がサポートされていない場合、メソッドは呼び出されず、ポストバックが自動的にトリガーされます。

これにより、より良いアイデアが得られることを願っています。

よろしく、

ラックスマン クマール C

于 2010-12-22T06:24:38.973 に答える