gpt4 book ai didi

javascript - Codebhind javascript 警报"is"和“否”无法正常工作

转载 作者:行者123 更新时间:2023-12-03 08:27:45 25 4
gpt4 key购买 nike

我已经写了"is"和“否”的确认消息。这是代码:-

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

另请参阅后面的代码:-

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

现在我的问题是,当我单击“否”时,它仍然向前移动并且数据正在保存。这里出了什么问题

更新代码

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

最佳答案

因为您不能以这种方式将服务器端代码执行与客户端代码混合。因此根据讨论,这可以使用以下两种方法来实现。

方法 1:使用复选框

在你的 aspx/前端放置一个复选框,如下所示

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

然后在 btnSave.Click 事件的代码后面使用它,如下所示

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

代码块将检查已存在的文件/记录。如果存在,则会要求用户选择复选框以覆盖记录。

然后用户选择该复选框并再次提交。它只是是/否确认消息框作为选择复选框或不选择复选框的替代方案。

此外,如果您想扩展它,那么您可以最初隐藏该复选框并仅在记录存在时才显示。

方法 2:使用隐藏的 div

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

  1. 除了 FileUploadbtnSave 之外,您还可以在前端添加一个隐藏的消息 div,其设计类似于包含您的消息的 MessageBox 和两个用于 Yes< 的按钮(btn是,服务器端用于调用后台代码,如果您想使用 AJAX,则为客户端)和 。 (此消息 div 可以基于 CSS/JavaScript 或根据您的方便或框架)
  2. 在您的btnSave.Click上,您可以检查您的文件/记录,如果不存在,通常会保存它。如果它确实已经存在,那么您可以从代码隐藏中调用隐藏的 div,提示是否覆盖。
  3. 如果用户选择,则只需隐藏消息 div 且不执行任何操作。
  4. 如果用户选择Yes,则调用与btnSave.Click中相同的代码,但不提示用户输入现有文件/记录,只需覆盖它即可。
  5. 为了避免重复,代码可以重新组织为子部分,即可以从 btnSave.Click 以及消息的 Yes 按钮调用的函数/子函数div,带有附加参数,决定是否覆盖文件或显示消息 div。

关于javascript - Codebhind javascript 警报"is"和“否”无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33475659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com