c# – 如何在某些选项卡打开时停止保存按钮功能

我有一个显示几个不同选项卡的页面.

<li id="liHeader"><a href="#tabHeader" title="Header">General</a></li>
<li id="liFooter"><a href="#tabNotesComments" id="tabNotes" title="Notes/History of Job">Notes (<%= NoOfNotes %>)</a></li>
<li runat="server" id="liDelivery" ><a href="#<%= tabDeliveryDbrief.ClientID %>" title="Delivery Dbrief">Delivery Dbrief</a></li>

每个标签具有不同的功能.在这些选项卡上方是一些新按钮,保存,删除等.在保存功能中,每次更新时都会有代码创建一个注释.例如“用户A在下午12:48更新作业”.
此保存按钮用于在打开的任何选项卡中进行的任何更改.但是当“交付汇报”标签打开时,我不希望每次更新内容时都会创建此注释.在此选项卡中,信息会更新很多,因此会有太多注释.
因此,每次单击保存按钮时,都会运行以下代码:

protected void btnSave_Click(object sender, EventArgs e)
{
    string Note = Job.Compare(oldJob, new Job(int.Parse(Request.QueryString["JobID"])), Mod);
    JobNote modNote = new JobNote
                      {
                      JobID = job.ID,
                      Company_ID = CurCompID,
                      Date = DateTime.Now,
                      Time = DateTime.Now,
                      Note = Note,
                      CreatedBy = CurrentUser.UserID,
                      CreatedByName = CurrentUser.Username,
                      NoteType = 1
                      };
    modNote.Create();
}

当交付汇报选项卡打开时,有没有办法阻止此代码运行?仍需要为其他选项卡创建注释.

最佳答案 您不能阻止点击,但您可以使用2种方法:

1 – 将您的按钮设为html按钮并通过ajax(Web服务)调用服务器端的单击

2 – 您可以为您的li设置属性(例如’active = false’),然后单击选项卡将其设置为’true’.现在在服务器端检查这个属性(liDelivery.Attributes [“active”]),如果它是真的,它意味着tab是打开的,不做任何事情

protected void btnSave_Click(object sender, EventArgs e)
    {

    if(liDelivery.Attributes["active"].ToString() == "false") return;
    string Note = Job.Compare(oldJob, new Job(int.Parse(Request.QueryString["JobID"])), Mod);
                                JobNote modNote = new JobNote
                                {
                                    JobID = job.ID,
                                    Company_ID = CurCompID,
                                    Date = DateTime.Now,
                                    Time = DateTime.Now,
                                    Note = Note,
                                    CreatedBy = CurrentUser.UserID,
                                    CreatedByName = CurrentUser.Username,
                                    NoteType = 1
                                };
                                modNote.Create();
}
点赞