我有一个用户的网格视图。
我想要发生的事情:
当有人想要编辑用户的详细信息时,他们单击相关的 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
方法。我试过更新面板,没有更新面板
但一次又一次,没有运气。
有没有人真正做到了这一点?...你会分享代码吗?