关闭子页面后父页面中的 Gridview 不刷新 - ASP.NET WEB APP
Gridview in parent page is not refreshing after closing child page - ASP.NET WEB APP
我有一个父页面,它包含一个 gridview 和一个 aspx 按钮。当用户单击此按钮时,将弹出一个子页面作为模态。从子页面插入数据后,它应该关闭并刷新父页面。结果父页面上的 gridview 应该显示插入的数据。但是使用下面的代码 gridview 并不刷新。
Parent.aspx 页数:
if (!IsPostBack)
{
string sqlquery=""//query here
SqlDataAdapter da = null;
da = new SqlDataAdapter(sqlquery);
DataTable dt = new DataTable();
da.Fill(dt);
dt.AcceptChanges();
gv_dept.DataSource = null;
gv_dept.DataSource = dt;
gv_dept.DataBind();
update_gv.Update();
}
<a href="#" id="toolbar_day2" onclick="create();">
Add New</a>
<div align="center">
<asp:UpdatePanel ID="update_gv" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="gv_dept" runat="server" AutoGenerateColumns="False"
GridLines="Both" DataKeyNames="dept_id">
<Columns>
<asp:BoundField DataField="dept_name" HeaderText="Name" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</div>
JS:
function create(start, end, resource) {
createModal().showUrl('Child.aspx');
}
function createModal() {
var modal = new DayPilot.Modal();
modal.closed = function () {
if (this.result && this.result.refresh) {
dp_day.commandCallBack("refresh", { message: this.result.message });
dp_week.commandCallBack("refresh", { message: this.result.message });
dp_month.commandCallBack("refresh", { message: this.result.message });
}
dp_day.clearSelection();
dp_week.clearSelection();
dp_month.clearSelection();
};
return modal;
}
DayPilot.Modal = function() {
// default values
this.autoStretch = true; // height will be increased automatically to avoid scrollbar, until this.maxHeight is reached
this.autoStretchFirstLoadOnly = false;
this.border = "10px solid #008080";
this.corners = 'Rounded';
this.className = null;
this.dragDrop = true;
this.height = 650; // see also autoStretch
this.maxHeight = null; // if not set, it will stretch until the bottom space is equal to this.top
this.opacity = 30;
this.scrollWithPage = true; // modal window will scroll with the page
this.top = 3;
this.useIframe = true; // only for showHtml()
this.width = 880;
this.zIndex = null;
}
Child.aspx 页数:
protected async void ButtonOK_Click(object sender, EventArgs e)
{
//Inserting data here.
Hashtable ht = new Hashtable();
ht["refresh"] = "yes";
ht["message"] = "Created.";
Modal.Close(this, ht);
Page.ClientScript.RegisterStartupScript(this.GetType(), "RefreshParentPage", "<script language='javascript'>RefreshParentPage();</script>");
}
function RefreshParentPage() {
window.location.href="Parent.aspx";
}
在 gridview 绑定上放置断点时,数据表会反映新插入的行。但是gridview并没有用它刷新。
好的,我们如何做到这一点。
BIG WHOPPER 问题是我们真的不知道你在弹出什么样的对话框。
我数一数,我们可以去获取 150 个不同的对话框实用程序?
但是,让我们使用一个比较流行的。 (jQuery.UI)。由于我们都经常使用 jQuery,不妨将 jQuery.UI 添加到您的应用程序中。
但是,任何一种对话系统都可以。
所以,假设我们有一个网格,这样说:
<asp:GridView ID="MyGrid" runat="server" CssClass="table table-hover"
DataKeyNames="ID" AutoGenerateColumns="false" >
<Columns>
<asp:BoundField DataField="FirstName" HeaderText="FirstName" />
<asp:BoundField DataField="LastName" HeaderText="Last Name" />
<asp:BoundField DataField="HotelName" HeaderText="Hotel Name" />
<asp:BoundField DataField="City" HeaderText="City" />
<asp:BoundField DataField="Province" HeaderText="Province" />
<asp:CheckBoxField DataField="Active" HeaderText="Active" />
</Columns>
</asp:GridView>
<br />
<asp:Button ID="cmdAdd" runat="server" Text="Add Hotel" OnClientClick="popadd();return false;"/>
我们加载此网格的代码:
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack == false)
{
LoadGrid();
}
}
public void LoadGrid()
{
using (SqlCommand cmdSQL = new SqlCommand("SELECT * From tblHotels ORDER by HotelName",
new SqlConnection(Properties.Settings.Default.TEST3)))
{
// now load grid
cmdSQL.Connection.Open();
MyGrid.DataSource = cmdSQL.ExecuteReader();
MyGrid.DataBind();
}
}
好的,以上,我们现在有这个:
并注意上面的简单简按钮 - 添加酒店。
我们喜欢大多数对话系统,现在必须添加我们的“添加酒店”标记。
一个简单的 div,带有一些文本框,当然还有一个添加或取消按钮。
所以,我有这个简单的标记:
<div id="mypop" style="display:none">
<br />
<div style="text-align:right">
<p>Hotel Name:<asp:TextBox ID="txtHotel" runat="server"></asp:TextBox></p>
<p>First Name:<asp:TextBox ID="txtFirst" runat="server"></asp:TextBox></p>
<p>Last Name:<asp:TextBox ID="txtLast" runat="server"></asp:TextBox></p>
<p>City:<asp:TextBox ID="txtCity" runat="server"></asp:TextBox></p>
<p>Province:<asp:TextBox ID="txtProvince" runat="server"></asp:TextBox></p>
<p>Is Active:<asp:CheckBox ID="chkActive" runat="server"></asp:CheckBox></p>
<p>
<asp:Button ID="cmdAddOk" runat="server" Text="Ok-add" OnClick="cmdAddOk_Click" />
<asp:Button ID="cmdCancel" runat="server" Text="Cancel" Style="margin-left:25px"
OnClientClick="MyClose();return false"/>
</p>
</div>
</div>
(注意 display = none - 对话框 (jQuery.UI) 将为我们打开此对话框的显示。
现在是弹出按钮的 JS 代码。
<script>
function popadd() {
var mydiv = $('#mypop')
mydiv.dialog({
autoOpen: false, modal: true, title: 'Add Hotel', width: '400px',
position: { my: 'top', at: 'top+150' },
closeText: ''
});
// Open the dialog
mydiv.parent().appendTo($("form:first"))
mydiv.dialog('open')
}
function MyClose() {
var mydiv = $('#mypop')
mydiv.dialog('close')
}
</script>
现在我们简单地编写一些代码来向数据添加一行 table。有无数种方法可以做到这一点,但我实际上经常使用数据行,因为它节省了我大量的 SQL 和参数 - 这种方法可以节省时间。
感觉就像 MS Access 或旧的 FoxPro 时代一样 - 易于编写代码!!!
因此,在对话框中,我们有两个按钮。取消按钮只是关闭对话框。
但是 cmdAdd,这又是后面的 plane jane 代码,看起来像这样:
protected void cmdAddOk_Click(object sender, EventArgs e)
{
using (SqlCommand cmdSQL = new SqlCommand("SELECT * FROM tblHotels WHERE ID = 0",
new SqlConnection(Properties.Settings.Default.TEST3)))
{
cmdSQL.Connection.Open();
DataTable rst = new DataTable();
rst.Load(cmdSQL.ExecuteReader());
SqlDataAdapter dUpdate = new SqlDataAdapter(cmdSQL);
SqlCommandBuilder sUpdate = new SqlCommandBuilder(dUpdate);
DataRow OneRow = rst.NewRow();
OneRow["FirstName"] = txtFirst.Text;
OneRow["LastName"] = txtLast.Text;
OneRow["HotelName"] = txtHotel.Text;
OneRow["City"] = txtCity.Text;
OneRow["Province"] = txtProvince.Text;
OneRow["Active"] = chkActive.Checked;
rst.Rows.Add(OneRow);
dUpdate.Update(rst);
// now refresh grid to show new row
LoadGrid();
}
}
所以最后的结果是这样的:
如果我可以添加,那么我们会得到:
所以这里有一些建议:
你不需要 post 大量的 HTML,但你真的需要分享你是如何弹出那个对话框的 - 只是愚蠢地让这里的读者不得不猜测。
并且您需要显示您的按钮添加代码和后面的代码以添加该行。
同样,不需要大量的代码,但至少要在这里做出半生不熟的努力。
但是,以上是 10,000 种方法中的一种,为此我选择使用 jQuery.UI,如前所述,我不知道您是 10,000 种可能的选择和选项中的哪一种,或者正在使用弹出提示对话框,因为您未能与我们分享。
现在,我在这里零烦恼 - 但我肯定会大力推动如何在这里提出更好的问题。
以上应该至少给了你一个工作设计模式,你可以使用它来弹出一个对话框,然后提示用户,添加行,然后非常重要的是重新加载网格以显示该行刚刚添加。
上面有一些很棒的想法 - 您可以在未来几年使用它们。祝你好运!
编辑:
好的,新示例是弹出页面是一个不同的页面。
所以我们有一个名为 AddHotelPop.aspx 的页面。
看起来像这样:
<form id="form1" runat="server">
<div>
<br />
<div style="text-align:right">
<p>Hotel Name:<asp:TextBox ID="txtHotel" runat="server"></asp:TextBox></p>
<p>First Name:<asp:TextBox ID="txtFirst" runat="server"></asp:TextBox></p>
<p>Last Name:<asp:TextBox ID="txtLast" runat="server"></asp:TextBox></p>
<p>City:<asp:TextBox ID="txtCity" runat="server"></asp:TextBox></p>
<p>Province:<asp:TextBox ID="txtProvince" runat="server"></asp:TextBox></p>
<p>Is Active:<asp:CheckBox ID="chkActive" runat="server"></asp:CheckBox></p>
<p>
<asp:Button ID="cmdAddOk" runat="server" Text="Ok-add" OnClick="cmdAddOk_Click" />
<asp:Button ID="cmdCancel" runat="server" Text="Cancel" Style="margin-left:25px"
OnClientClick="MyClose();return false"/>
</p>
</div>
</div>
</form>
请注意,单击取消按钮实际上会调用 js 代码以关闭对话框 - 但关闭的 js 代码仍保留在调用页面上。
现在这有效了,因为在第二页中添加代码跳回我们的原始页面。所以第二页上的添加按钮看起来像这样:
protected void cmdAddOk_Click(object sender, EventArgs e)
{
using (SqlCommand cmdSQL = new SqlCommand("SELECT * FROM tblHotels WHERE ID = 0",
new SqlConnection(Properties.Settings.Default.TEST3)))
{
cmdSQL.Connection.Open();
DataTable rst = new DataTable();
rst.Load(cmdSQL.ExecuteReader());
SqlDataAdapter dUpdate = new SqlDataAdapter(cmdSQL);
SqlCommandBuilder sUpdate = new SqlCommandBuilder(dUpdate);
DataRow OneRow = rst.NewRow();
OneRow["FirstName"] = txtFirst.Text;
OneRow["LastName"] = txtLast.Text;
OneRow["HotelName"] = txtHotel.Text;
OneRow["City"] = txtCity.Text;
OneRow["Province"] = txtProvince.Text;
OneRow["Active"] = chkActive.Checked;
rst.Rows.Add(OneRow);
dUpdate.Update(rst);
Response.Redirect("GridViewFun.aspx");
}
}
现在是我们的第一页吗?它只是加载网格 - 代码与以前相同。
但是,现在我们的 pop 代码和标记是这样的:
<asp:Button ID="cmdAdd" runat="server" Text="Add Hotel" OnClientClick="popadd();return false;"/>
</div>
<div id="mypop" style="display:none">
</div>
<script>
function popadd() {
var mydiv = $('#mypop')
mydiv.dialog({
autoOpen: false, modal: true, title: 'Add Hotel', width: '400px',
position: { my: 'top', at: 'top+150' },
closeText: ''
});
// Open the dialog
// mydiv.parent().appendTo($("form:first"))
mydiv.load("AddHotelPop.aspx")
mydiv.dialog('open')
}
function MyClose() {
var mydiv = $('#mypop')
mydiv.dialog('close')
}
</script>
现在请注意 div 弹出窗口是空白的。我们将加载 + 将第二个其他页面弹出到 div 以供显示。
结果现在看起来是一样的。唯一真正的区别是第二页中的添加按钮会重新定向回第一页。
因此我们的页面现在将第一次加载 - 而不是 post 返回,我们的网格将再次重新加载。
如前所述,我们在上面使用 jQuery.UI,而 .Load() 功能允许将 div 拉入 + 加载整个其他页面。
UI 和屏幕截图的外观和工作方式与上述屏幕截图相同,但对话框弹出页面现在是一个单独的 aspx 页面。
我有一个父页面,它包含一个 gridview 和一个 aspx 按钮。当用户单击此按钮时,将弹出一个子页面作为模态。从子页面插入数据后,它应该关闭并刷新父页面。结果父页面上的 gridview 应该显示插入的数据。但是使用下面的代码 gridview 并不刷新。
Parent.aspx 页数:
if (!IsPostBack)
{
string sqlquery=""//query here
SqlDataAdapter da = null;
da = new SqlDataAdapter(sqlquery);
DataTable dt = new DataTable();
da.Fill(dt);
dt.AcceptChanges();
gv_dept.DataSource = null;
gv_dept.DataSource = dt;
gv_dept.DataBind();
update_gv.Update();
}
<a href="#" id="toolbar_day2" onclick="create();">
Add New</a>
<div align="center">
<asp:UpdatePanel ID="update_gv" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="gv_dept" runat="server" AutoGenerateColumns="False"
GridLines="Both" DataKeyNames="dept_id">
<Columns>
<asp:BoundField DataField="dept_name" HeaderText="Name" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</div>
JS:
function create(start, end, resource) {
createModal().showUrl('Child.aspx');
}
function createModal() {
var modal = new DayPilot.Modal();
modal.closed = function () {
if (this.result && this.result.refresh) {
dp_day.commandCallBack("refresh", { message: this.result.message });
dp_week.commandCallBack("refresh", { message: this.result.message });
dp_month.commandCallBack("refresh", { message: this.result.message });
}
dp_day.clearSelection();
dp_week.clearSelection();
dp_month.clearSelection();
};
return modal;
}
DayPilot.Modal = function() {
// default values
this.autoStretch = true; // height will be increased automatically to avoid scrollbar, until this.maxHeight is reached
this.autoStretchFirstLoadOnly = false;
this.border = "10px solid #008080";
this.corners = 'Rounded';
this.className = null;
this.dragDrop = true;
this.height = 650; // see also autoStretch
this.maxHeight = null; // if not set, it will stretch until the bottom space is equal to this.top
this.opacity = 30;
this.scrollWithPage = true; // modal window will scroll with the page
this.top = 3;
this.useIframe = true; // only for showHtml()
this.width = 880;
this.zIndex = null;
}
Child.aspx 页数:
protected async void ButtonOK_Click(object sender, EventArgs e)
{
//Inserting data here.
Hashtable ht = new Hashtable();
ht["refresh"] = "yes";
ht["message"] = "Created.";
Modal.Close(this, ht);
Page.ClientScript.RegisterStartupScript(this.GetType(), "RefreshParentPage", "<script language='javascript'>RefreshParentPage();</script>");
}
function RefreshParentPage() {
window.location.href="Parent.aspx";
}
在 gridview 绑定上放置断点时,数据表会反映新插入的行。但是gridview并没有用它刷新。
好的,我们如何做到这一点。 BIG WHOPPER 问题是我们真的不知道你在弹出什么样的对话框。
我数一数,我们可以去获取 150 个不同的对话框实用程序?
但是,让我们使用一个比较流行的。 (jQuery.UI)。由于我们都经常使用 jQuery,不妨将 jQuery.UI 添加到您的应用程序中。
但是,任何一种对话系统都可以。
所以,假设我们有一个网格,这样说:
<asp:GridView ID="MyGrid" runat="server" CssClass="table table-hover"
DataKeyNames="ID" AutoGenerateColumns="false" >
<Columns>
<asp:BoundField DataField="FirstName" HeaderText="FirstName" />
<asp:BoundField DataField="LastName" HeaderText="Last Name" />
<asp:BoundField DataField="HotelName" HeaderText="Hotel Name" />
<asp:BoundField DataField="City" HeaderText="City" />
<asp:BoundField DataField="Province" HeaderText="Province" />
<asp:CheckBoxField DataField="Active" HeaderText="Active" />
</Columns>
</asp:GridView>
<br />
<asp:Button ID="cmdAdd" runat="server" Text="Add Hotel" OnClientClick="popadd();return false;"/>
我们加载此网格的代码:
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack == false)
{
LoadGrid();
}
}
public void LoadGrid()
{
using (SqlCommand cmdSQL = new SqlCommand("SELECT * From tblHotels ORDER by HotelName",
new SqlConnection(Properties.Settings.Default.TEST3)))
{
// now load grid
cmdSQL.Connection.Open();
MyGrid.DataSource = cmdSQL.ExecuteReader();
MyGrid.DataBind();
}
}
好的,以上,我们现在有这个:
并注意上面的简单简按钮 - 添加酒店。
我们喜欢大多数对话系统,现在必须添加我们的“添加酒店”标记。 一个简单的 div,带有一些文本框,当然还有一个添加或取消按钮。
所以,我有这个简单的标记:
<div id="mypop" style="display:none">
<br />
<div style="text-align:right">
<p>Hotel Name:<asp:TextBox ID="txtHotel" runat="server"></asp:TextBox></p>
<p>First Name:<asp:TextBox ID="txtFirst" runat="server"></asp:TextBox></p>
<p>Last Name:<asp:TextBox ID="txtLast" runat="server"></asp:TextBox></p>
<p>City:<asp:TextBox ID="txtCity" runat="server"></asp:TextBox></p>
<p>Province:<asp:TextBox ID="txtProvince" runat="server"></asp:TextBox></p>
<p>Is Active:<asp:CheckBox ID="chkActive" runat="server"></asp:CheckBox></p>
<p>
<asp:Button ID="cmdAddOk" runat="server" Text="Ok-add" OnClick="cmdAddOk_Click" />
<asp:Button ID="cmdCancel" runat="server" Text="Cancel" Style="margin-left:25px"
OnClientClick="MyClose();return false"/>
</p>
</div>
</div>
(注意 display = none - 对话框 (jQuery.UI) 将为我们打开此对话框的显示。
现在是弹出按钮的 JS 代码。
<script>
function popadd() {
var mydiv = $('#mypop')
mydiv.dialog({
autoOpen: false, modal: true, title: 'Add Hotel', width: '400px',
position: { my: 'top', at: 'top+150' },
closeText: ''
});
// Open the dialog
mydiv.parent().appendTo($("form:first"))
mydiv.dialog('open')
}
function MyClose() {
var mydiv = $('#mypop')
mydiv.dialog('close')
}
</script>
现在我们简单地编写一些代码来向数据添加一行 table。有无数种方法可以做到这一点,但我实际上经常使用数据行,因为它节省了我大量的 SQL 和参数 - 这种方法可以节省时间。
感觉就像 MS Access 或旧的 FoxPro 时代一样 - 易于编写代码!!!
因此,在对话框中,我们有两个按钮。取消按钮只是关闭对话框。 但是 cmdAdd,这又是后面的 plane jane 代码,看起来像这样:
protected void cmdAddOk_Click(object sender, EventArgs e)
{
using (SqlCommand cmdSQL = new SqlCommand("SELECT * FROM tblHotels WHERE ID = 0",
new SqlConnection(Properties.Settings.Default.TEST3)))
{
cmdSQL.Connection.Open();
DataTable rst = new DataTable();
rst.Load(cmdSQL.ExecuteReader());
SqlDataAdapter dUpdate = new SqlDataAdapter(cmdSQL);
SqlCommandBuilder sUpdate = new SqlCommandBuilder(dUpdate);
DataRow OneRow = rst.NewRow();
OneRow["FirstName"] = txtFirst.Text;
OneRow["LastName"] = txtLast.Text;
OneRow["HotelName"] = txtHotel.Text;
OneRow["City"] = txtCity.Text;
OneRow["Province"] = txtProvince.Text;
OneRow["Active"] = chkActive.Checked;
rst.Rows.Add(OneRow);
dUpdate.Update(rst);
// now refresh grid to show new row
LoadGrid();
}
}
所以最后的结果是这样的:
如果我可以添加,那么我们会得到:
所以这里有一些建议:
你不需要 post 大量的 HTML,但你真的需要分享你是如何弹出那个对话框的 - 只是愚蠢地让这里的读者不得不猜测。
并且您需要显示您的按钮添加代码和后面的代码以添加该行。
同样,不需要大量的代码,但至少要在这里做出半生不熟的努力。
但是,以上是 10,000 种方法中的一种,为此我选择使用 jQuery.UI,如前所述,我不知道您是 10,000 种可能的选择和选项中的哪一种,或者正在使用弹出提示对话框,因为您未能与我们分享。
现在,我在这里零烦恼 - 但我肯定会大力推动如何在这里提出更好的问题。
以上应该至少给了你一个工作设计模式,你可以使用它来弹出一个对话框,然后提示用户,添加行,然后非常重要的是重新加载网格以显示该行刚刚添加。
上面有一些很棒的想法 - 您可以在未来几年使用它们。祝你好运!
编辑:
好的,新示例是弹出页面是一个不同的页面。
所以我们有一个名为 AddHotelPop.aspx 的页面。
看起来像这样:
<form id="form1" runat="server">
<div>
<br />
<div style="text-align:right">
<p>Hotel Name:<asp:TextBox ID="txtHotel" runat="server"></asp:TextBox></p>
<p>First Name:<asp:TextBox ID="txtFirst" runat="server"></asp:TextBox></p>
<p>Last Name:<asp:TextBox ID="txtLast" runat="server"></asp:TextBox></p>
<p>City:<asp:TextBox ID="txtCity" runat="server"></asp:TextBox></p>
<p>Province:<asp:TextBox ID="txtProvince" runat="server"></asp:TextBox></p>
<p>Is Active:<asp:CheckBox ID="chkActive" runat="server"></asp:CheckBox></p>
<p>
<asp:Button ID="cmdAddOk" runat="server" Text="Ok-add" OnClick="cmdAddOk_Click" />
<asp:Button ID="cmdCancel" runat="server" Text="Cancel" Style="margin-left:25px"
OnClientClick="MyClose();return false"/>
</p>
</div>
</div>
</form>
请注意,单击取消按钮实际上会调用 js 代码以关闭对话框 - 但关闭的 js 代码仍保留在调用页面上。 现在这有效了,因为在第二页中添加代码跳回我们的原始页面。所以第二页上的添加按钮看起来像这样:
protected void cmdAddOk_Click(object sender, EventArgs e)
{
using (SqlCommand cmdSQL = new SqlCommand("SELECT * FROM tblHotels WHERE ID = 0",
new SqlConnection(Properties.Settings.Default.TEST3)))
{
cmdSQL.Connection.Open();
DataTable rst = new DataTable();
rst.Load(cmdSQL.ExecuteReader());
SqlDataAdapter dUpdate = new SqlDataAdapter(cmdSQL);
SqlCommandBuilder sUpdate = new SqlCommandBuilder(dUpdate);
DataRow OneRow = rst.NewRow();
OneRow["FirstName"] = txtFirst.Text;
OneRow["LastName"] = txtLast.Text;
OneRow["HotelName"] = txtHotel.Text;
OneRow["City"] = txtCity.Text;
OneRow["Province"] = txtProvince.Text;
OneRow["Active"] = chkActive.Checked;
rst.Rows.Add(OneRow);
dUpdate.Update(rst);
Response.Redirect("GridViewFun.aspx");
}
}
现在是我们的第一页吗?它只是加载网格 - 代码与以前相同。
但是,现在我们的 pop 代码和标记是这样的:
<asp:Button ID="cmdAdd" runat="server" Text="Add Hotel" OnClientClick="popadd();return false;"/>
</div>
<div id="mypop" style="display:none">
</div>
<script>
function popadd() {
var mydiv = $('#mypop')
mydiv.dialog({
autoOpen: false, modal: true, title: 'Add Hotel', width: '400px',
position: { my: 'top', at: 'top+150' },
closeText: ''
});
// Open the dialog
// mydiv.parent().appendTo($("form:first"))
mydiv.load("AddHotelPop.aspx")
mydiv.dialog('open')
}
function MyClose() {
var mydiv = $('#mypop')
mydiv.dialog('close')
}
</script>
现在请注意 div 弹出窗口是空白的。我们将加载 + 将第二个其他页面弹出到 div 以供显示。
结果现在看起来是一样的。唯一真正的区别是第二页中的添加按钮会重新定向回第一页。
因此我们的页面现在将第一次加载 - 而不是 post 返回,我们的网格将再次重新加载。
如前所述,我们在上面使用 jQuery.UI,而 .Load() 功能允许将 div 拉入 + 加载整个其他页面。
UI 和屏幕截图的外观和工作方式与上述屏幕截图相同,但对话框弹出页面现在是一个单独的 aspx 页面。