Gridview按钮单击 - 填充用户控件,然后打开Jquery对话框

时间:2013-04-15 15:38:00

标签: c# asp.net jquery-ui gridview modal-dialog

我有一个用户的gridview。

想要发生的事情:

当有人想要编辑用户的详细信息时,他们会点击相关的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");
                    }
                });

的GridView:

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

我的问题是对话框出现&amp;在回发上消失,或者它不会显示,或者它将显示在弹出窗口(未填充)和窗体上(已填充)

我试过了ScriptManager.RegisterStartupScript

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

但又是&amp;再一次,没有运气。

有没有人真正实现过这个目标? ...你愿意分享这些代码吗?

1 个答案:

答案 0 :(得分:0)

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