【问题标题】:Have Button re-appear immediately after clicking button in ListView row单击 ListView 行中的按钮后立即重新出现按钮
【发布时间】:2010-03-12 10:21:41
【问题描述】:

我在一个页面上有 4 个按钮。每个按钮都会打开一个模态窗口,让用户在表单中输入数据。当用户点击模式中的保存按钮时,一个 ListView 会出现在页面上,其中包含提交的数据。

用户点击打开模态窗口的按钮设置为 visible=false,所以当行添加到 ListView 时它就消失了。现在有 3 个按钮,这些按钮也是如此;当用户点击一个按钮时,会出现一个模态,当模态表单被提交时,该按钮会消失并在ListView中添加一行。

在 ListView 行中,有一个删除按钮。单击此按钮时,该行将被删除,并且最初单击以添加该行(并打开模式)的按钮应该重新出现,但它没有。该行消失了,但我必须在按钮返回之前刷新页面。母版页上有一个 ScriptManager,所以我猜这是 AJAX 部分刷新问题。我尝试添加不同的事件,但找不到在正确时间触发的事件。

我使用 ObjectDataSource 填充 ListView,数据来自数据库,包装在业务对象中。

此代码在 List 中加载业务对象并检查用户是否插入了特定类型的项目。如果他这样做了,他用来打开模式的按钮就会被隐藏。这很好用(也许不是最优雅的)

_goals = GoalManager.GetGoalsByUser(UserID);

            if (_goals != null)
            {
                foreach (Goal _goalinlist in _goals)
                {
                    if (_goalinlist.GoalType == 1)
                    {
                        Button1.Visible = false;
                        goalid1 = true;
                    }
                    if (_goalinlist.GoalType == 2)
                    {
                        Button2.Visible = false;
                        goalid2 = true;
                    }
                    if (_goalinlist.GoalType == 3)
                    {
                        Button3.Visible = false;
                        goalid3 = true;
                    }
                    if (_goalinlist.GoalType == 4)
                    {
                        Button4.Visible = false;
                        goalid4 = true;
                    }
                }

            }

如您所见,我尝试设置一个布尔值,然后在重新加载页面时检查它。但问题(我猜)是在 ListView 中单击删除按钮时,整个页面没有刷新。

这是 ListView 中的删除按钮:

<asp:ImageButton ID="ImageButton2" runat="server" CommandName="Delete" CausesValidation="false"
                    ToolTip="Delete" CommandArgument='<%#Eval("GoalID")%>' ImageUrl="delete.gif"
                    OnClientClick="return confirm('Delete this post?');" CssClass="button"/>

我想问题是,如何在单击 ListView 按钮后立即重新显示该按钮?

【问题讨论】:

    标签: asp.net listview button events


    【解决方案1】:

    我使用了 ObjectDataSource Deleted 事件,并让它执行 response.redirect 到同一页面。成功了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多