Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 单击“保存”按钮时避免重复_C#_Save - Fatal编程技术网

C# 单击“保存”按钮时避免重复

C# 单击“保存”按钮时避免重复,c#,save,C#,Save,我使用C#4.0和SQLServer2008R2,我有一个简单的按钮点击,调用一个函数,将数据保存到数据库中并重定向页面 问题是,当客户端在这个保存按钮上单击多个项目时,我也会将多个项目保存到数据库中 我想避免客户端出错,这意味着客户端只能执行1次clic=1次保存数据 <dx:ASPxButton ID="ASPxButton_save" runat="server" Image-Url="~/images/Icon/Good-or-Tick-icon.png" Text="Enre

我使用C#4.0和SQLServer2008R2,我有一个简单的按钮点击,调用一个函数,将数据保存到数据库中并重定向页面

问题是,当客户端在这个保存按钮上单击多个项目时,我也会将多个项目保存到数据库中

我想避免客户端出错,这意味着客户端只能执行1次clic=1次保存数据

  <dx:ASPxButton ID="ASPxButton_save" runat="server" Image-Url="~/images/Icon/Good-or-Tick-icon.png" Text="Enregistrer"  Width="110px" onclick="ASPxButton_save_Click"  ValidationGroup="Savebouton"> 

                                                 </dx:ASPxButton>

 protected void ASPxButton_save_Click(object sender, EventArgs e)
    {
        string ErrPos = "";

        try
        {
            ErrPos = "Affct CP DEST";
            string FA_Choisi = ASPxTextBox_CP_dest.Text.Substring(0, 2);
            string CLIENT_de_FA = ClientId.Substring(0, 2);

            List<string> ClotList_FA = new List<string>();
            ErrPos = "Affct Trans";
            foreach (DataRow myRow in oOrdre_BL.Get_Tranporteur(ClientId).Tables["Le_Transporter"].Rows)
            {
                ClotList_FA.Add(myRow["LIBELLE"].ToString());
            }

            Pers_Client_Entrp oPersclientEntrp = GetOPersclientEntrp();
            Pers_Ordre oPersOrdr = new
.......
  if (ASPxCheckBox_NewDesti.Checked)
            {   
                string ResTemp = oDest_BL.Compare_Dest(ClientId, ASPxTextBox_Desti_ID.Text, ASPxTextBox_RS_NOM_dest.Text, ASPxTextBox_ADRESSE_dest.Text);
                if (!String.IsNullOrWhiteSpace(ResTemp))
                {
                    lbl_err.Text = ResTemp;
                }
                else
                {
                    Pers_Dest TheDest = new Pers_Dest();
                    TheDest.CodeDest = ASPxTextBox_Desti_ID.Text.Replace('-', ' ').Replace('\'', ' ');
                    TheDest.CodeClient = ClientId;
                    TheDest.RaisonSoc = ASPxTextBox_RS_NOM_dest.Text.Replace('-', ' ').Replace('\'', ' ');
                    TheDest.Adresse = ASPxTextBox_ADRESSE_dest.Text.Replace('-', ' ').Replace('\'', ' ');
                    TheDest.Cp = ASPxTextBox_CP_dest.Text;
                    TheDest.Ville = ASPxComboBox_VILLE_dest.Text;
                    TheDest.Pays = ASPxComboBox_PAYS_dest.Value.ToString();
                    TheDest.Tel = ASPxTextBox_TEL_dest.Text.Replace('-', ' ').Replace('\'', ' ');
                    TheDest.Fax = ASPxTextBox_FAX_dest.Text.Replace('-', ' ').Replace('\'', ' ');
                    TheDest.Email = ASPxTextBox_EMAIL_dest.Text.Replace('-', ' ').Replace('\'', ' ');
                    TheDest.Insee = ASPxTextBox_INSEE_dest.Text.Replace('-', ' ').Replace('\'', ' ');
                    TheDest.Siret = ASPxButton_SIRET_dest.Text.Replace('-', ' ').Replace('\'', ' ');

                    oDest_BL.CrUp_Dest(TheDest, true);

                    oPersOrdr.Ville = ASPxComboBox_VILLE_dest.Text;
                    Save_Part(oPersOrdr, oPersclientEntrp, OrdreID);
                }

            }
            else
            {
                oPersOrdr.Ville = ASPxTextBox_VILLE_dest.Text.Replace('-', ' ').Replace('\'', ' ');
                Save_Part(oPersOrdr, oPersclientEntrp, OrdreID);
            }

 catch (Exception ex)
        {
            lbl_err.Text = ex.Message;
            if (ex.InnerException != null) { lbl_err.Text += "-->" +ex.InnerException.Message; }
            Outils_IHM.SendingEmail("Save Odre --> Err Position: " + ErrPos + "-----" + lbl_err.Text, ClientId);
        }

  private void Save_Part(Pers_Ordre oPersOrdr, Pers_Client_Entrp oPersclientEntrp, string OrdreID)
    {
        oOrdre_BL.SaveUpdt_Ordre_BL(oPersOrdr, OrdreID);

        string QuelleID = TempId;
        if (!String.IsNullOrWhiteSpace(OrdreID))
        { QuelleID = OrdreID; }

        if (oPersclientEntrp.TypPrint == "Zebra")
        { Response.Redirect("../Print/BonEticket_Web.aspx?ConnPrint=UnDirect&OdreID=" + QuelleID + "&CountOrdre=" + ASPxTextBox_NBR_COLIS.Text + "&TypeAR=" + TypeEnlev, false); }
        else
        { Response.Redirect("../Print/BonEticket_Web.aspx?OdreID=" + QuelleID + "&CountOrdre=" + ASPxTextBox_NBR_COLIS.Text + "&TypeAR=" + TypeEnlev, false); }

        Context.ApplicationInstance.CompleteRequest();
    }

受保护的无效ASPxButton_保存_单击(对象发送者,事件参数e)
{
字符串ErrPos=“”;
尝试
{
ErrPos=“影响CP目的地”;
字符串FA_Choisi=aspxtbox_CP_dest.Text.Substring(0,2);
字符串CLIENT_de_FA=ClientId.Substring(0,2);
List ClotList_FA=新列表();
ErrPos=“影响传输”;
foreach(oOrdre_BL.Get_transporteur(ClientId)中的DataRow myRow.Tables[“Le_Transporter”].Rows)
{
ClotList_FA.Add(myRow[“LIBELLE”].ToString());
}
Pers_Client_Entrp opersclientrp=getopersclientrp();
Pers_Ordre operator dr=新
.......
如果(ASPxCheckBox_NewDesti.Checked)
{   
string ResTemp=oDest_BL.Compare_Dest(ClientId、aspxtbox_Desti_ID.Text、aspxtbox_RS_NOM_Dest.Text、aspxtbox_address_Dest.Text);
如果(!String.IsNullOrWhiteSpace(ResTemp))
{
lbl_err.Text=ResTemp;
}
其他的
{
Pers_Dest TheDest=新Pers_Dest();
dest.CodeDest=aspxtbox\u Desti\u ID.Text.Replace('-','').Replace('\'','');
TheDest.CodeClient=ClientId;
dest.raisensoc=aspxtbox\u r\u NOM\u dest.Text.Replace('-','').Replace('\'');
dest.adrese=aspxtbox\u adrese\u dest.Text.Replace('-','').Replace('\'');
dest.Cp=aspxtbox\u Cp\u dest.Text;
dest.Ville=ASPxComboBox\u Ville\u dest.Text;
dest.Pays=ASPxComboBox_Pays_dest.Value.ToString();
dest.Tel=aspxtbox\u Tel\u dest.Text.Replace('-','').Replace('\'');
dest.Fax=aspxtbox\u Fax\u dest.Text.Replace('-','').Replace('\'');
dest.Email=aspxtbox\u Email\u dest.Text.Replace('-','').Replace('\'');
dest.Insee=aspxtbox\u Insee\u dest.Text.Replace('-','').Replace('\'','');
dest.Siret=ASPxButton\u Siret\u dest.Text.Replace('-','').Replace('\'','');
oDest_BL.CrUp_Dest(最坏的,正确的);
oPersOrdr.Ville=ASPxComboBox\u Ville\u dest.Text;
保存零件(oPersOrdr、OpersClientRp、OrdreID);
}
}
其他的
{
oPersOrdr.Ville=aspxtbox\u Ville\u dest.Text.Replace('-','').Replace('\'');
保存零件(oPersOrdr、OpersClientRp、OrdreID);
}
捕获(例外情况除外)
{
lbl_err.Text=除信息外;
如果(ex.InnerException!=null){lbl_err.Text+=“-->”+ex.InnerException.Message;}
Outils_IHM.SendingEmail(“保存Odre-->错误位置:“+ErrPos+”----“+lbl_Err.Text,ClientId”);
}
私有void保存部分(Pers\u Ordre oPersOrdr、Pers\u Client\u Entrp opersclientrp、string或reid)
{
oOrdre_BL.SaveUpdt_Ordre_BL(oPersOrdr,OrdreID);
字符串QuelleID=TempId;
如果(!String.IsNullOrWhiteSpace(OrdreID))
{QuelleID=OrdreID;}
如果(OperatsClientRP.TypPrint==“斑马”)
{Response.Redirect(../Print/BonEticket_Web.aspx?ConnPrint=unddirective&OdreID=“+QuelleID+”&CountOrdre=“+ASPxTextBox_NBR\u COLIS.Text+”&TypeAR=“+TypeEnlev,false);}
其他的
{Response.Redirect(../Print/BonEticket_Web.aspx?OdreID=“+QuelleID+”&CountOrdre=“+aspxtbox_NBR_COLIS.Text+”&TypeAR=“+TypeEnlev,false);}
Context.ApplicationInstance.CompleteRequest();
}

我有一个想法,当用户点击这个按钮时,它会调用客户端函数来禁用它。但是我不知道它是如何工作的,以及它是否能像我想的那样工作。

你可以使用下面提到的代码作为参考

    <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script language="javascript" type="text/javascript">
        var submit = 0;
        function CheckIsRepeat() {
            if (++submit > 1) {
                alert('An attempt was made to submit this form more than once; this extra attempt will be ignored.');
                return false;
            }
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" OnClientClick="return CheckIsRepeat();" />
    </div>
    </form>
</body>
</html>

var-submit=0;
函数CheckIsRepeat(){
如果(++提交>1){
警报('尝试多次提交此表单;此额外尝试将被忽略');
返回false;
}
}

在将数据保存到数据库之前,先解除按钮的锁定,然后保存数据,然后清除控件,然后再次启用按钮。


  <dx:ASPxButton ID="ASPxButton_save" runat="server" Image-Url="~/images/Icon/Good-or-Tick-icon.png" Text="Enregistrer" ClientInstanceName="ASPxButton_save"  Width="110px" onclick="ASPxButton_save_Click"  ValidationGroup="Savebouton"> 
                                 <ClientSideEvents Click ="function(s,e) { MyBtnClick(s,e); } " />                   
                                                 </dx:ASPxButton>

   function MyBtnClick(s, e) {
         if (ASPxClientEdit.AreEditorsValid())
                ASPxButton_save.SetVisible(false);

 }
函数MyBtnClick(s,e){ if(ASPxClientEdit.AreEditorsValid()) ASPxButton_save.SetVisible(false); }