我正在使用这个asp页面,它有一个带有编辑按钮的gridview控件。我能够获得编辑按钮来显示JQuery UI对话框。问题是当我点击按钮时,对话框打开然后很快关闭。这是gridview的标记:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
BackColor="White" BorderColor="#CCCCCC"
BorderStyle="None" BorderWidth="1px" CellPadding="4" ForeColor="Black"
OnRowDataBound="GridView1_RowDataBound"
style="margin-bottom: 0px" >
<Columns>
<asp:TemplateField HeaderText="Edit">
<ItemTemplate>
<asp:LinkButton Id="btnEditRow" Text="Edit" OnClientClick="EditRecordOpen('editForm');" OnClick="btnEditRow_Click" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="StartTime" HeaderText="Start Time"
SortExpression="StartTime" >
<ItemStyle Width="180px" />
</asp:BoundField>
</Columns>
</asp:GridView>
这就是我的javascript:
<script type="text/javascript">
$(document).ready(function () {
$("#editForm").dialog({
autoOpen: false,
draggable: true,
title: "Edit Record",
open: function (type, data) {
$(this).parent().appendTo("form");
}
});
});
function EditRecordOpen(id) {
$("#" + id).dialog("open");
return false;
}
function EditRecordClose(id) {
$("#" + id).dialog("close");
return false;
}
</script>
我在读取另一个放置
的StackOverflow问题 return false;
会停止这种行为,但它仍然会消失。
有3个功能可以控制与对话框关联的按钮点击:
private void CloseDialog(string dialogId)
{
string script = string.Format(@"closeDialog('{0}')", dialogId);
ScriptManager.RegisterClientScriptBlock(this, typeof(Page), UniqueID, script, true);
}
protected void btnSaveRecord_Click(object sender, EventArgs e)
{
CloseDialog("editForm");
}
protected void btnEditRow_Click(object sender, EventArgs e)
{
var editLink = ((LinkButton)sender);
editRecordPanel.Update();
}
我也尝试使用Chrome开发者工具查看点击期间发生的情况,但我没有看到与对话框相关的任何错误。
另外,我使用http://blog.roonga.com.au/2009/07/using-jquery-ui-dialog-with-aspnet-and.html页面中的示例来设置对话框
同样,我的弹出窗口在这里定义:
<div id="editForm">
<asp:UpdatePanel ID="editRecordPanel" UpdateMode="Conditional" ChildrenAsTriggers="true" runat="server">
<ContentTemplate>
<asp:Label ID="popupTest" runat="server" Text="Test"></asp:Label>
<asp:Button ID="btnSaveRecord" runat="server" Text="Save" OnClick="btnSaveRecord_Click" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
答案 0 :(得分:0)
有了它的工作,@ Aristos帮我弄清楚我需要放置
return false;
里面的
OnClientClick="EditRecordOpen('editForm'); return false;"