如何在打开某些选项卡时停止保存按钮功能 运行

How to stop save button function running when certain tab is open

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

<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>

每个选项卡都有不同的功能。在这些选项卡上方是一些新建、保存、删除等按钮。在保存功能中,有代码在每次更新内容时创建一个注释。例如 "user A updated job at 12:48 PM"。 此保存按钮适用于在打开的任何选项卡中所做的任何更改。但是当 'Delivery Debrief' 选项卡打开时,我不希望每次更新内容时都创建这个注释。在此选项卡中,信息会更新很多,因此会有太多注释。 所以每次点击保存按钮时,这段代码都是 运行:

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();
}

有没有办法在交付报告选项卡打开时停止此代码 运行ning?仍然需要为其他选项卡创建注释。

你不能阻止点击,但是你可以用2个方法:

1 - 将您的按钮设为 html 按钮并通过 ajax(Web 服务)

在服务器端调用点击

2 - 您可以为 li 设置一个属性(如 'active=false'),然后单击选项卡将其设置为 'true'。现在在服务器端检查这个属性(liDelivery.Attributes["active"])如果它是真的,这意味着选项卡是打开的并且没有做任何事情

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();
}