codebhind为YES JavaScript警告和NO不完全工作 [英] Codebhind javascript alert for YES and NO not working exactly

查看:206
本文介绍了codebhind为YES JavaScript警告和NO不完全工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经书面确认消息YES和NO。
这里是code: -

 函数myTestFunction(){
         如果(确认(你确定要覆盖文件?)){
             返回true;
         }
         其他{
             返回false;
         }
     }

另见code背后: -

 如果(DtMain.Rows.Count大于0)
    {
        ClientScript.RegisterStartupScript(this.GetType(),SuccessScript,myTestFunction(),真);
    }

现在我的问题是,当我点击NO,它仍然向前推进,数据被越来越保存。到底是怎么回事错在这里。

修订code

 保护无效btnSave_Click(对象发件人,EventArgs的发送)
{    数据表dtExcel =新的DataTable();
    dtExcel.Clear();
    字符串StrCount =的String.Empty;
    字符串CONNSTRING =;
    HttpPostedFile文件= FileUpload1.PostedFile;
    字符串strFileType = Path.GetExtension(FileUpload1.FileName).ToLower();
    字符串路径= FileUpload1.PostedFile.FileName;
    字符串文件名= path.Substring(path.LastIndexOf(\\\\)+1,path.Length - path.LastIndexOf(\\\\) - 1);
    路径=使用Server.Mappath(@〜/过人之处/+/+ Filename.ToString());    File.SaveAs(路径);
    如果(strFileType.Trim()==的.xl​​s)
    {
        CONNSTRING =供应商= Microsoft.Jet.OLEDB.4.0;数据源=+路径+;扩展属性= \\Excel中8.0; HDR =是; IMEX = 2 \\;
    }
    否则,如果(strFileType.Trim()==的.xl​​sx)
    {
        CONNSTRING =供应商= Microsoft.ACE.OLEDB.12.0;数据源=+路径+;扩展属性= \\Excel的12.0; HDR =是; IMEX = 2 \\;
    }
    查询字符串=SELECT * FROM [表1 $];
    康涅狄格州的OleDbConnection =新的OleDbConnection(CONNSTRING);
    conn.Close();
    如果(conn.State == ConnectionState.Closed)
        conn.Open();
    OleDbCommand的CMD =新的OleDbCommand(查询,康涅狄格州);
    OleDbDataAdapter的daExcel =新OleDbDataAdapter的(CMD);    daExcel.Fill(dtExcel);
    conn.Close();    数据表DtMain = CF.ExecuteDT(选择Tran_type,ORDER_DATE,从WMS_Future_Del_Order_Hdr Region_Mkey那里Tran_type ='+ CmbTypeOfAsn.SelectedValue +'和ORDER_DATE =转换(日期时间,'+ TxtEdate.Value +',103)和Region_Mkey = '+ ddlRegion.SelectedValue +');    如果(DtMain.Rows.Count大于0)
    {
        ClientScript.RegisterStartupScript(this.GetType(),SuccessScript,myTestFunction(),真);
    }    StringBuilder的StrPubBldg =新System.Text.StringBuilder();
    XW的XmlWriter = XmlWriter.Create(StrPubBldg);    字符串ExcelfileName = Path.GetFileName(FileUpload1.PostedFile.FileName);    xw.WriteStartElement(DocumentElement);
    {
        xw.WriteStartElement(WMS_Future_Del_Order_Hdr);
        xw.WriteElementString(Comp_mkey,0);
        xw.WriteElementString(FDepartment_ID,W);
        xw.WriteElementString(FModule_id,W);
        xw.WriteElementString(Tran_type,CmbTypeOfAsn.SelectedValue);
        xw.WriteElementString(Doc_no,1);
        xw.WriteElementString(Doc_date,System.DateTime.Now.ToString(DD / MM / YYYY HH:MM:SS));
        xw.WriteElementString(ORDER_DATE,TxtEdate.Value);
        xw.WriteElementString(Import_Filename,文件名);
        xw.WriteElementString(Save_File_Name_Path,使用Server.Mappath(〜/ FutureDelivery /)+ ExcelfileName +的.xl​​s);
        xw.WriteElementString(Note_Remarks,txtRemarks.Text);
        xw.WriteElementString(USER_ID,1);
        xw.WriteElementString(U_DateTime,System.DateTime.Now.ToString(DD / MM / YYYY HH:MM:SS));
        xw.WriteElementString(Delete_flag,N);
        xw.WriteEndElement();        串STRLine_Id =0;
        串STRItem_Mkey =1;
        字符串STRItem_ code =2;
        串STRItem_Desc =3;
        串STRLot_Batch_No =4;
        字符串STRExp_Dt =;
        字符串STRBx_Bg =6;
        字符串STRNet_Wgt =7;
        字符串STRQty =8;
        字符串STRNo_of_Pallets =9;
        数据表ParaDt = CF.ExecuteDT(从WMS_Mapping_Para_Table选择*);
        的for(int i = 0; I< ParaDt.Rows.Count;我++)
        {
            如果(ParaDt.Rows [I] [Txn_Column_Name]。的ToString()==Line_Id)
            {
                STRLine_Id = ParaDt.Rows [I] [Sheet_Int_Id]的ToString()。
            }
            否则,如果(ParaDt.Rows [I] [Txn_Column_Name]。的ToString()==Item_Mkey)
            {
                STRItem_Mkey = ParaDt.Rows [I] [Sheet_Int_Id]的ToString()。
            }
            否则,如果(ParaDt.Rows [I] [Txn_Column_Name]。的ToString()==ITEM_ code)
            {
                STRItem_ code = ParaDt.Rows [I] [Sheet_Int_Id]的ToString()。
            }
            否则,如果(ParaDt.Rows [I] [Txn_Column_Name]。的ToString()==ITEM_DESC)
            {
                STRItem_Desc = ParaDt.Rows [I] [Sheet_Int_Id]的ToString()。
            }
            否则,如果(ParaDt.Rows [I] [Txn_Column_Name]。的ToString()==Lot_Batch_No)
            {
                STRLot_Batch_No = ParaDt.Rows [I] [Sheet_Int_Id]的ToString()。
            }
            否则,如果(ParaDt.Rows [I] [Txn_Column_Name]。的ToString()==Exp_Dt)
            {
                STRExp_Dt = ParaDt.Rows [I] [Sheet_Int_Id]的ToString()。
            }
            否则,如果(ParaDt.Rows [I] [Txn_Column_Name]。的ToString()==数量)
            {
                STRQty = ParaDt.Rows [I] [Sheet_Int_Id]的ToString()。
            }
            否则,如果(ParaDt.Rows [I] [Txn_Column_Name]。的ToString()==Bx_Bg)
            {
                STRBx_Bg = ParaDt.Rows [I] [Sheet_Int_Id]的ToString()。
            }
            否则,如果(ParaDt.Rows [I] [Txn_Column_Name]。的ToString()==Net_Wgt)
            {
                STRNet_Wgt = ParaDt.Rows [I] [Sheet_Int_Id]的ToString()。
            }        }
        如果(dtExcel.Rows.Count大于0)
        {
            的for(int i = 0; I< dtExcel.Rows.Count;我++)
            {
                xw.WriteStartElement(WMS_Future_Del_Order_Trl);
                xw.WriteElementString(Sr_No,第(i + 1)的ToString());
                xw.WriteElementString(Line_Id,dtExcel.Rows [I] [Convert.ToInt32(STRLine_Id)]的ToString());
                xw.WriteElementString(Item_Mkey,dtExcel.Rows [I] [Convert.ToInt32(STRItem_Mkey)]的ToString());
                xw.WriteElementString(ITEM_ code,dtExcel.Rows [I] [Convert.ToInt32(STRItem_ code)]的ToString());
                xw.WriteElementString(ITEM_DESC,dtExcel.Rows [I] [Convert.ToInt32(STRItem_Desc)]的ToString());
                xw.WriteElementString(Lot_Batch_No,dtExcel.Rows [I] [Convert.ToInt32(STRLot_Batch_No)]的ToString());
                xw.WriteElementString(Exp_Dt,Convert.ToDateTime(dtExcel.Rows [Ⅰ] [Convert.ToInt32(STRExp_Dt)〕的ToString())ToShortDateString());
                xw.WriteElementString(数量,dtExcel.Rows [I] [Convert.ToInt32(STRQty)]的ToString());
                xw.WriteElementString(Bx_Bg,dtExcel.Rows [I] [Convert.ToInt32(STRBx_Bg)]的ToString());
                xw.WriteElementString(Net_Wgt,dtExcel.Rows [I] [Convert.ToInt32(STRNet_Wgt)]的ToString());
                xw.WriteElementString(No_of_Pallets,dtExcel.Rows [I] [Convert.ToInt32(STRNo_of_Pallets)]的ToString());
                xw.WriteElementString(CREATION_DATE,System.DateTime.Now.ToString(DD / MM / YYYY HH:MM:SS));
                xw.WriteElementString(UPDATE_DATE,System.DateTime.Now.ToString(DD / MM / YYYY HH:MM:SS));
                xw.WriteElementString(CREATED_BY,1);
                xw.WriteElementString(Updated_By,1);
                xw.WriteElementString(USER_ID,1);
                xw.WriteElementString(U_DateTime,System.DateTime.Now.ToString(DD / MM / YYYY HH:MM:SS));
                xw.WriteEndElement();
            }
        }
        xw.Close();
        串strretmkey = InsertUpdateDelete.InsertUpdateDeleteCls.InsertUpdateDelete_sql(Hid_Mode.Value,Convert.ToInt32(Hid_MKey.Value),WMS_Future_Del_Order_Hdr,MKEY,FD,StrPubBldg.ToString());
        DataTable的DT = CF.ExecuteDT(选择Tran_type,DATEPART(YYYY,U_DateTime)AS U_DateTime,DATEPART(毫米,U_DateTime)AS U_DateTime从WMS_Future_Del_Order_Hdr那里MKEY ='+ strretmkey +');
        StrDocNo = strretmkey +'/'+ dt.Rows [0] [0]的ToString()+/+ dt.Rows [0] [2]的ToString()+ dt.Rows [0] [1]。的ToString();        。ExcelfileName = StrDocNo.ToString()更换(/,_);
        字符串strPathval =使用Server.Mappath(〜/ FutureDelivery /)+ ExcelfileName +的.xl​​s
        FileUpload1.PostedFile.SaveAs(使用Server.Mappath(〜/ FutureDelivery /)+ ExcelfileName +的.xl​​s);        CF.ExecuteQuerry(更新WMS_Future_Del_Order_Hdr设置Doc_no ='+ StrDocNo +',Save_File_Name_Path ='+ strPathval +阿凡MKEY =+ strretmkey +);        lblDocNo.Text = StrDocNo.ToString();
        Hid_MKey.Value = strretmkey;
    }    ClientScript.RegisterStartupScript(this.GetType(),SuccessScript,警报('记录保存成功。');,真正的);
    FunGridBind();    btnSave.Enabled = FALSE;
}


解决方案

正如你不能混用服务器端code执行与客户端code这个样子。因此,根据讨论这可以通过以下两种方法来实现的。

方法1:使用复选框

将一个复选框上的ASPX /前端像这样

 < ASP:复选框ID =chkOverwriteFile=服务器文本=覆盖现有文件/>

然后在code使用它落后于你的 btnSave.Click 事件如下

 保护无效btnSave_Click(对象发件人,EventArgs的发送)
{
    ////////////////////您的其他code    数据表DtMain = CF.ExecuteDT(选择Tran_type,ORDER_DATE,从WMS_Future_Del_Order_Hdr Region_Mkey那里Tran_type ='+ CmbTypeOfAsn.SelectedValue +'和ORDER_DATE =转换(日期时间,'+ TxtEdate.Value +',103)和Region_Mkey = '+ ddlRegion.SelectedValue +');    布尔blWriteReecord = FALSE;
    如果(DtMain.Rows.Count大于0)
    {
        如果(chkOverwriteFile.Checked){
            blWriteReecord = TRUE;
        }
        其他
        {
            ClientScript.RegisterStartupScript(this.GetType(),SuccessScript,警报('。记录已经exitst如果你想覆盖它,然后选择覆盖现有文件,然后再次保存。');,真正的);
        }
    }
    其他
    {
        blWriteReecord = TRUE;
    }    如果(blWriteReecord){
        StringBuilder的StrPubBldg =新System.Text.StringBuilder();        /////////////////您的其他code        FunGridBind();        btnSave.Enabled = FALSE;
    }
}

在code座将检查已存在的文件/记录。如果存在,那么它会要求用户选择复选框以覆盖记录。

然后,用户选中该复选框,并再次提交。这仅仅是/否确认窗口的选择复选框或不是替代。

此外,如果你想扩展它,那么你可以先隐藏复选框,如果记录只存在显示。

方法2:使用隐藏的div

在此方法,您可以按以下步骤操作:


  1. 随着你的文件上传 btnSave 您包括在前端同样设计为一个MessageBox隐藏消息的div包含您的留言和两个按钮为(btnYes,服务器端调用后面或客户端code,如果你想使用AJAX)和。 (此消息DIV可CSS / JavaScript的基础或根据您的方便或框架)

  2. 在你的 btnSave.Click 您检查您的文件/记录,并保存正常,如果它不存在。如果它确实存在,那么你调用从code中的隐藏分区后面提示覆盖与否。

  3. 如果用户选择只是隐藏消息DIV,什么也不做。

  4. 如果用户选择了调用同一个code在 btnSave.Click ,但不提示对于现有的文件/记录的用户,只需将其覆盖。

  5. 要避免重复的code可重新组织成子部分,即功能/潜艇可以从两个被称为 btnSave.Click 以及 DIV信息按钮,与决定是否覆盖文件或显示信息的div附加参数。

I have written confirmation message for YES and NO. Here is the code:-

 function myTestFunction() {
         if (confirm('Are you sure you want to override the file ?')) {
             return true;
         }
         else {
             return false;
         }
     }

Also see the code behind:-

 if (DtMain.Rows.Count > 0)
    {
        ClientScript.RegisterStartupScript(this.GetType(), "SuccessScript", "myTestFunction()", true);
    }

Now my issue is that, when i click NO, it still moves ahead and the data is getting saved. what is going wrong here

UPDATED CODE

protected void btnSave_Click(object sender, EventArgs e)
{

    DataTable dtExcel = new DataTable();
    dtExcel.Clear();
    string StrCount = String.Empty;
    string connString = "";
    HttpPostedFile File = FileUpload1.PostedFile;
    string strFileType = Path.GetExtension(FileUpload1.FileName).ToLower();
    string path = FileUpload1.PostedFile.FileName;
    string Filename = path.Substring(path.LastIndexOf("\\") + 1, path.Length - path.LastIndexOf("\\") - 1);
    path = Server.MapPath(@"~/Excels/" + "/" + Filename.ToString());

    File.SaveAs(path);
    if (strFileType.Trim() == ".xls")
    {
        connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\"";
    }
    else if (strFileType.Trim() == ".xlsx")
    {
        connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\"";
    }
    string query = "SELECT * FROM [Sheet 1$]";
    OleDbConnection conn = new OleDbConnection(connString);
    conn.Close();
    if (conn.State == ConnectionState.Closed)
        conn.Open();
    OleDbCommand cmd = new OleDbCommand(query, conn);
    OleDbDataAdapter daExcel = new OleDbDataAdapter(cmd);

    daExcel.Fill(dtExcel);
    conn.Close();

    DataTable DtMain = CF.ExecuteDT("select Tran_type, Order_Date, Region_Mkey from WMS_Future_Del_Order_Hdr where Tran_type = '" + CmbTypeOfAsn.SelectedValue + "' and Order_Date = convert(datetime,'" + TxtEdate.Value + "',103) and Region_Mkey = '" + ddlRegion.SelectedValue + "'");

    if (DtMain.Rows.Count > 0)
    {
        ClientScript.RegisterStartupScript(this.GetType(), "SuccessScript", "myTestFunction()", true);
    }

    StringBuilder StrPubBldg = new System.Text.StringBuilder();
    XmlWriter xw = XmlWriter.Create(StrPubBldg);

    string ExcelfileName = Path.GetFileName(FileUpload1.PostedFile.FileName);

    xw.WriteStartElement("DocumentElement");
    {
        xw.WriteStartElement("WMS_Future_Del_Order_Hdr");
        xw.WriteElementString("Comp_mkey", "0");
        xw.WriteElementString("FDepartment_ID", "W");
        xw.WriteElementString("FModule_id", "W");
        xw.WriteElementString("Tran_type", CmbTypeOfAsn.SelectedValue);
        xw.WriteElementString("Doc_no", "1");
        xw.WriteElementString("Doc_date", System.DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));
        xw.WriteElementString("Order_Date", TxtEdate.Value);
        xw.WriteElementString("Import_Filename", Filename);
        xw.WriteElementString("Save_File_Name_Path", Server.MapPath("~/FutureDelivery/") + ExcelfileName + ".xls");
        xw.WriteElementString("Note_Remarks", txtRemarks.Text);
        xw.WriteElementString("User_id", "1");
        xw.WriteElementString("U_DateTime", System.DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));
        xw.WriteElementString("Delete_flag", "N");
        xw.WriteEndElement();

        string STRLine_Id = "0";
        string STRItem_Mkey = "1";
        string STRItem_Code = "2";
        string STRItem_Desc = "3";
        string STRLot_Batch_No = "4";
        string STRExp_Dt = "";
        string STRBx_Bg = "6";
        string STRNet_Wgt = "7";
        string STRQty = "8";
        string STRNo_of_Pallets = "9";
        DataTable ParaDt = CF.ExecuteDT("select * from WMS_Mapping_Para_Table");
        for (int i = 0; i < ParaDt.Rows.Count; i++)
        {
            if (ParaDt.Rows[i]["Txn_Column_Name"].ToString() == "Line_Id")
            {
                STRLine_Id = ParaDt.Rows[i]["Sheet_Int_Id"].ToString();
            }
            else if (ParaDt.Rows[i]["Txn_Column_Name"].ToString() == "Item_Mkey")
            {
                STRItem_Mkey = ParaDt.Rows[i]["Sheet_Int_Id"].ToString();
            }
            else if (ParaDt.Rows[i]["Txn_Column_Name"].ToString() == "Item_Code")
            {
                STRItem_Code = ParaDt.Rows[i]["Sheet_Int_Id"].ToString();
            }
            else if (ParaDt.Rows[i]["Txn_Column_Name"].ToString() == "Item_Desc")
            {
                STRItem_Desc = ParaDt.Rows[i]["Sheet_Int_Id"].ToString();
            }
            else if (ParaDt.Rows[i]["Txn_Column_Name"].ToString() == "Lot_Batch_No")
            {
                STRLot_Batch_No = ParaDt.Rows[i]["Sheet_Int_Id"].ToString();
            }
            else if (ParaDt.Rows[i]["Txn_Column_Name"].ToString() == "Exp_Dt")
            {
                STRExp_Dt = ParaDt.Rows[i]["Sheet_Int_Id"].ToString();
            }
            else if (ParaDt.Rows[i]["Txn_Column_Name"].ToString() == "Qty")
            {
                STRQty = ParaDt.Rows[i]["Sheet_Int_Id"].ToString();
            }
            else if (ParaDt.Rows[i]["Txn_Column_Name"].ToString() == "Bx_Bg")
            {
                STRBx_Bg = ParaDt.Rows[i]["Sheet_Int_Id"].ToString();
            }
            else if (ParaDt.Rows[i]["Txn_Column_Name"].ToString() == "Net_Wgt")
            {
                STRNet_Wgt = ParaDt.Rows[i]["Sheet_Int_Id"].ToString();
            }

        }
        if (dtExcel.Rows.Count > 0)
        {
            for (int i = 0; i < dtExcel.Rows.Count; i++)
            {
                xw.WriteStartElement("WMS_Future_Del_Order_Trl");
                xw.WriteElementString("Sr_No", (i + 1).ToString());
                xw.WriteElementString("Line_Id", dtExcel.Rows[i][Convert.ToInt32(STRLine_Id)].ToString());
                xw.WriteElementString("Item_Mkey", dtExcel.Rows[i][Convert.ToInt32(STRItem_Mkey)].ToString());
                xw.WriteElementString("Item_Code", dtExcel.Rows[i][Convert.ToInt32(STRItem_Code)].ToString());
                xw.WriteElementString("Item_Desc", dtExcel.Rows[i][Convert.ToInt32(STRItem_Desc)].ToString());
                xw.WriteElementString("Lot_Batch_No", dtExcel.Rows[i][Convert.ToInt32(STRLot_Batch_No)].ToString());
                xw.WriteElementString("Exp_Dt", Convert.ToDateTime(dtExcel.Rows[i][Convert.ToInt32(STRExp_Dt)].ToString()).ToShortDateString());
                xw.WriteElementString("Qty", dtExcel.Rows[i][Convert.ToInt32(STRQty)].ToString());
                xw.WriteElementString("Bx_Bg", dtExcel.Rows[i][Convert.ToInt32(STRBx_Bg)].ToString());
                xw.WriteElementString("Net_Wgt", dtExcel.Rows[i][Convert.ToInt32(STRNet_Wgt)].ToString());
                xw.WriteElementString("No_of_Pallets", dtExcel.Rows[i][Convert.ToInt32(STRNo_of_Pallets)].ToString());
                xw.WriteElementString("Creation_Date", System.DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));
                xw.WriteElementString("Update_Date", System.DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));
                xw.WriteElementString("Created_By", "1");
                xw.WriteElementString("Updated_By", "1");
                xw.WriteElementString("User_id", "1");
                xw.WriteElementString("U_DateTime", System.DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));
                xw.WriteEndElement();
            }
        }
        xw.Close();
        String strretmkey = InsertUpdateDelete.InsertUpdateDeleteCls.InsertUpdateDelete_sql(Hid_Mode.Value, Convert.ToInt32(Hid_MKey.Value), "WMS_Future_Del_Order_Hdr", "MKEY", "FD", StrPubBldg.ToString());
        DataTable dt = CF.ExecuteDT("Select Tran_type,DATEPART(yyyy,U_DateTime) AS U_DateTime,DATEPART(mm,U_DateTime) AS U_DateTime from WMS_Future_Del_Order_Hdr where mkey ='" + strretmkey + "'");
        StrDocNo = strretmkey + '/' + dt.Rows[0][0].ToString() + '/' + dt.Rows[0][2].ToString() + dt.Rows[0][1].ToString();

        ExcelfileName = StrDocNo.ToString().Replace("/", "_");
        string strPathval = Server.MapPath("~/FutureDelivery/") + ExcelfileName + ".xls";
        FileUpload1.PostedFile.SaveAs(Server.MapPath("~/FutureDelivery/") + ExcelfileName + ".xls");

        CF.ExecuteQuerry("update WMS_Future_Del_Order_Hdr set Doc_no ='" + StrDocNo + "', Save_File_Name_Path ='" + strPathval + "' where mkey=" + strretmkey + "");

        lblDocNo.Text = StrDocNo.ToString();
        Hid_MKey.Value = strretmkey;
    }

    ClientScript.RegisterStartupScript(this.GetType(), "SuccessScript", "alert('Record saved successfully.');", true);
    FunGridBind();

    btnSave.Enabled = false;
}

解决方案

As you can not mix server side code execution with client side code this way. So as per discussion this can be achieved using following two approaches.

Approach 1: Using a CheckBox

Place a CheckBox on your aspx/front end such as this

<asp:CheckBox ID="chkOverwriteFile" runat="server" Text="Overwrite existing file" />

Then use it on code behind on your btnSave.Click event as below

protected void btnSave_Click(object sender, EventArgs e)
{
    //////////////////// YOUR OTHER CODE

    DataTable DtMain = CF.ExecuteDT("select Tran_type, Order_Date, Region_Mkey from WMS_Future_Del_Order_Hdr where Tran_type = '" + CmbTypeOfAsn.SelectedValue + "' and Order_Date = convert(datetime,'" + TxtEdate.Value + "',103) and Region_Mkey = '" + ddlRegion.SelectedValue + "'");

    bool blWriteReecord = false;
    if (DtMain.Rows.Count > 0)
    {
        if (chkOverwriteFile.Checked) {
            blWriteReecord = true;
        }
        else
        {
            ClientScript.RegisterStartupScript(this.GetType(), "SuccessScript", "alert('Record already exitst. If you want to overwrite it then select Overwrite existing file and then save again.');", true);
        }
    }
    else
    {
        blWriteReecord = true;
    }

    if (blWriteReecord) {
        StringBuilder StrPubBldg = new System.Text.StringBuilder();

        ///////////////// YOUR OTHER CODE

        FunGridBind();

        btnSave.Enabled = false;
    }
}

The code block will check for the already existing file/records. If it exists then it will ask the user to select the CheckBox to overwrite the records.

Then the user selects the checkbox and submits again. It is just an alternative for Yes/No confirm messagebox as select checkbox or not.

Moreover if you want to extend it then you can initially hide the checkbox and display only if the record exists.

Approach 2: Using a hidden div

In this approach you can follow these steps:

  1. Along with your FileUpload and btnSave you include a hidden message div on the front end designed similarly to a MessageBox containing your message and two buttons for Yes(btnYes, server side for calling code behind or client side if you want to use AJAX) and No. (This message div can be CSS/JavaScript based or as per your convenience or framework)
  2. On your btnSave.Click you check your file/records and normally save it if it does not exist. If it does exist already then you invoke the hidden div from code behind prompting to overwrite or not.
  3. If the user select No just hide the message div and do nothing.
  4. If the user selects Yes call the same code as in btnSave.Click but do not prompt the user for existing file/record, just overwrite it.
  5. To avoid repetition the code may be re-organised into sub parts i.e. functions/subs which can be called from both btnSave.Click as well as Yes button of message div, with additional parameter which decides whether to overwrite the file or show the message div.

这篇关于codebhind为YES JavaScript警告和NO不完全工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆