1

更新パネルがあるマスター ページがあります。私が取り組んでいるアプリケーションのページの 1 つに、いくつかの asp:textboxes を含むカスタム コントロールがあります。そのコントロールにはグリッドビューもあります。

行の asp:linkbutton がクリックされると、OnRowCommand イベントが発生し、その魔法を正しく実行します。その一部は、asp:textbox の "Text" プロパティを設定しています。これは機能します。

私の問題は、更新が UI に反映されていないことです。

更新パネル:

<asp:ScriptManager ID="scriptManager" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="updPanel" runat="server">
        <ContentTemplate>
              [...more code...]

リンクボタン:

 <ItemTemplate>
         <asp:LinkButton ID="LinkButton1" CommandArgument='<%# Eval("ID")%>' CommandName="EDIT" runat="server">Edit</asp:LinkButton>     
</ItemTemplate>

イベント ハンドラ:

protected void RowCommand(object sender, GridViewCommandEventArgs e)
        {
            switch (e.CommandName)
            {
                case "EDIT":
                    //stuff happens here
                    [ASP:Textbox].Text = [Result of stuff that happened];
                     ^this is what isn't reflected on the page
                    break;

ページのライフサイクルで何かが欠けていることはわかっていますが、空白を描いています。

4

2 に答える 2

2

これに数時間を費やしただけです。

どうやら、変更は CommandName プロパティが "Edit" (およびその他の標準コマンド) 以外に設定されている場合にのみ反映されます。「EditThis」に設定してみてください。うまくいきます。

于 2011-04-03T17:10:00.913 に答える
0
protected void RowCommand(object sender, GridViewCommandEventArgs e)
        {
            switch (e.CommandName)
            {
                case "EDIT":
                    //stuff happens here
                    [ASP:Textbox].Text = [Result of stuff that happened];
                     ^this is what isn't reflected on the page
                    // ADD THIS
                    updPanel.Update();
                    break;
于 2011-02-02T22:40:46.227 に答える