我们有一个名为Contact的标签页。它是链接到"父母"的许多标签页中的一个。页面:Student.aspx。
在“联系人”页面中,有用于显示总体家庭住址信息的字段,然后是显示学生个人联系人的网格。
如果用户更改家庭住址信息中的数据,然后尝试添加新联系人(表单中的网页按钮),则会弹出一个弹出框,询问用户是否要保存地址信息。如果用户进行相同的更改,然后单击网格中包含的“详细信息”按钮,则会打开联系人详细信息屏幕,并且用户将丢失对家庭信息所做的更改。
如果HasUserChanges = true
并点击了详细信息按钮,我想要弹出提醒。
目前,我正在检查"父母"的变化。联系页面,然后尝试动态设置网格中包含的控件中的属性。
我从web按钮(WebButtonContactDetails)中删除了OnCommand属性
<ItemTemplate>
<sis:WebButton ID="WebButtonContactDetail" runat="server" UseCssHover="true" UsePostBack="true"
AutoTipKey="Detail" IsSmallButton="true" ImageUrl="~/App_Themes/LBL/wbtnDetail_small.gif"
CommandArgument='<%# Eval("Order").ToString() + Eval("ContactType").ToString() + Eval("Relation.Value").ToString() %>'
CausesValidation="false" OnClick="WebButtonContactDetail_Click"
UseAsync="false" />
</ItemTemplate>
并添加了一个onClick属性WebButtonContactDetails_Click
。
protected void WebButtonContactDetail_Click(object sender, EventArgs e)
{
var closelink = (Control) sender;
GridDataItem row = (GridDataItem)closelink.NamingContainer;
string firstCellText = row.Cells[0].Text;
WebButton test = (WebButton)row.FindControl("WebButtonContactDetail");
if (HasUserChanges)
{
ScriptManager.RegisterStartupScript(this.Page, typeof(Page), "Submit", "setTimeout('ShowAlert(\\'" + "You need to save your changes!" + "\\',\\'\\', 0, \\'\\', \\'Student Contacts\\', false)', 500);", true);
}
else
{
test.Command += new CommandEventHandler(StudentContacts_LinkButtonDetails_Command_H);
}
}
警报框看起来并不令人敬畏,但它确实有效。
任何人都有更好/更优雅的方式来做这件事吗?