0

我有一个用户的网格视图。

想要发生的事情:

当有人想要编辑用户的详细信息时,他们单击相关的 gridview 按钮,然后会打开一个 Jquery 模式对话框,其中预先填充了用户信息。

剧本:

$(document).ready(function () {
                //setup new User dialog
                $('#divEditUser').dialog({
                    autoOpen: false,
                    draggable: true,
                    width: 650,
                    modal: true,
                    title: "Edit User",
                    open: function (type, data) {
                        $(this).parent().appendTo("form");
                    }
                });

网格视图:

<asp:TemplateField ItemStyle-HorizontalAlign="Center">
    <ItemTemplate>
        <asp:Button ID="btnEdit" CommandArgument='<%# Eval("UserID") %>' CommandName="EditUser" Text="Edit User" runat="server" UseSubmitBehavior="false"/>
    </ItemTemplate>
</asp:TemplateField>

自定义用户控件:

<div id="divEditUser" title="Edit user">
    <asp:HiddenField ID="hiddenUserID" runat="server" />
    <cac:UserDetails runat="server" ID="UserDetails" />
    <asp:Button id="btnSaveChanges" Text="Save Changes" runat="server" />
</div>

背后的代码:

protected void gridUsers_RowCommand(object sender, GridViewCommandEventArgs e)
    {
       if (e.CommandName == "EditUser")
        {
            Button btn = (Button)e.CommandSource;               // the button
            GridViewRow myRow = (GridViewRow)btn.Parent.Parent;  // the row
            GridView myGrid = (GridView)sender; // the gridview
            string ID = myGrid.DataKeys[myRow.RowIndex].Value.ToString();

            UserDetails.PopulateUser(Convert.ToInt16(ID));

            THIS IS WHERE I WANT TO OPEN THE DIALOG 
        }
    }    

我的问题是对话框在回发时出现并消失,或者它不会显示,或者它将显示在弹出窗口(未填充)上并再次显示在表单上(填充)

我试过了ScriptManager.RegisterStartupScript

我也尝试了几种OnClientClick方法。我试过更新面板,没有更新面板

但一次又一次,没有运气。

有没有人真正做到了这一点?...你会分享代码吗?

4

1 回答 1

0

在您的 jquery 对话框函数中使用 return false 语句

于 2013-06-20T22:15:16.327 回答