控制不反映更新

时间:2011-02-02 20:44:23

标签: asp.net updatepanel page-lifecycle rowcommand

我有一个主页面上有一个更新面板。我正在处理的应用程序的一个页面有一个自定义控件,上面有一些asp:textboxes。该控件还具有gridview。

当单击一行的asp:linkbutton时,OnRowCommand事件会触发并正确地执行其魔法,其中一部分是设置asp:textbox的“Text”属性。这有效。

我的问题是更新未反映在用户界面中。

UpdatePanel:

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

LinkBut​​ton:

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

我知道我在页面生命周期中遗漏了一些东西,但我正在画一个空白。

2 个答案:

答案 0 :(得分:2)

这花了几个小时。

看起来,仅当CommandName属性设置在“Edit”(以及任何其他标准命令)之外的其他内容时,才会反映更改。尝试将其设置为“EditThis”,它适用于我。

答案 1 :(得分: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;