使用带有 js 文件的 RegisterStartupScript 从 C# 代码后面调用 Javascript 函数
Calling Javascript function from C# Code behind using RegisterStartupScript w/ js file
我在触发 js 文件中的第二个函数时遇到问题。计划是在成功插入期间显示 1 个模式,如果出现重复错误则显示另一个。成功模式有效,但如果出现错误,我仍然会获得成功模式,除非我注释掉它的代码(测试)。然后第二个函数才会触发。我是 C# 和 Javascript 的新手。任何帮助将不胜感激。我错过了什么????
问题已通过以下代码解决,但现在我遇到了新问题。重复的错误消息大声笑。当错误模式第一次显示有 1 个错误时,它会正确显示。但是,在将已知的重复信息输入到第二个测试字段并提交后,模态 returns 出现了预期的 2 个错误,但现在也复制了第一个,如所附图片所示。
我想我的问题是如何在模式关闭时清除 jquery 中的项目符号列表项?
代码隐藏 ** 为工作代码编辑
public partial class _Default : System.Web.UI.Page
{
SqlConnection con;
}
protected void Page_Load(object sender, EventArgs e)
{
con = new SqlConnection("connection string");
}
protected void addBtn_Click(object sender, EventArgs e)
{
//Create the command and set its properties
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "dupcheck";
cmd.CommandType = CommandType.StoredProcedure;
//Create the parameters and set their properties
cmd.Parameters.Add("@DeviceType", SqlDbType.VarChar, 20).Value = deviceTypeDL.SelectedItem.Text;
cmd.Parameters.Add("@DeviceName", SqlDbType.VarChar, 20).Value = devName.Text;
cmd.Parameters.Add("@DeviceBrand", SqlDbType.VarChar, 20).Value = brand.Text;
cmd.Parameters.Add("@DeviceModel", SqlDbType.VarChar, 20).Value = d_Model.Text;
cmd.Parameters.Add("@DevicePN", SqlDbType.VarChar, 20).Value = partNumber.Text;
cmd.Parameters.Add("@DeviceSN", SqlDbType.VarChar, 20).Value = serialNumber.Text;
cmd.Parameters.Add("@DeviceOS", SqlDbType.VarChar, 20).Value = operatingSystemDL.SelectedItem.Text;
cmd.Parameters.Add("@SPWAgent", SqlDbType.VarChar, 20).Value = spwAgentDL.SelectedItem.Text;
cmd.Parameters.Add("@DeviceStatus", SqlDbType.VarChar).Value = statusDL.SelectedItem.Text;
cmd.Parameters.Add("@DepartmentAbbrev", SqlDbType.VarChar, 20).Value = departmentDL.SelectedItem.Text;
cmd.Parameters.Add("@UserName", SqlDbType.VarChar, 20).Value = username.Text;
cmd.Parameters.Add("@AircardModel", SqlDbType.VarChar, 20).Value = a_Model.Text;
cmd.Parameters.Add("@IMEI_SN", SqlDbType.VarChar, 20).Value = imei_SN.Text;
cmd.Parameters.Add("@PhoneNumber", SqlDbType.VarChar, 20).Value = phoneNumber.Text;
cmd.Parameters.Add("@InsertSuccess_msg", SqlDbType.VarChar, 30);
cmd.Parameters["@InsertSuccess_msg"].Direction = ParameterDirection.Output;
cmd.Parameters.Add("@DeviceNameErr_msg", SqlDbType.VarChar, 30);
cmd.Parameters["@DeviceNameErr_msg"].Direction = ParameterDirection.Output;
cmd.Parameters.Add("@DeviceSnErr_msg", SqlDbType.VarChar, 30);
cmd.Parameters["@DeviceSnErr_msg"].Direction = ParameterDirection.Output;
cmd.Parameters.Add("@IMEI_SnErr_msg", SqlDbType.VarChar, 30);
cmd.Parameters["@IMEI_SnErr_msg"].Direction = ParameterDirection.Output;
cmd.Parameters.Add("@PhoneNumberErr_msg", SqlDbType.VarChar, 30);
cmd.Parameters["@PhoneNumberErr_msg"].Direction = ParameterDirection.Output;
//Excute Query
con.Open();
cmd.ExecuteNonQuery();
con.Close();
//Update Gridview or Display Error Messages
GridView1.DataSourceID = "GridViewSource";
GridView1.DataBind();
String InsertSuccess_msg = cmd.Parameters["@InsertSuccess_msg"].Value.ToString();
String DeviceNameErr_msg = cmd.Parameters["@DeviceNameErr_msg"].Value.ToString();
String DeviceSnErr_msg = cmd.Parameters["@DeviceSnErr_msg"].Value.ToString();
String IMEI_SnErr_msg = cmd.Parameters["@IMEI_SnErr_msg"].Value.ToString();
String PhoneNumberErr_msg = cmd.Parameters["@PhoneNumberErr_msg"].Value.ToString();
if (DeviceNameErr_msg != "")
{
ListItem listItem = new ListItem(DeviceNameErr_msg);
ErrorBulletedList.Items.Add(listItem);
}
if (DeviceSnErr_msg != "")
{
ListItem listItem2 = new ListItem(DeviceSnErr_msg);
ErrorBulletedList.Items.Add(listItem2);
}
if (IMEI_SnErr_msg != "")
{
ListItem listItem3 = new ListItem(IMEI_SnErr_msg);
ErrorBulletedList.Items.Add(listItem3);
}
if (PhoneNumberErr_msg != "")
{
ListItem listItem4 = new ListItem(PhoneNumberErr_msg);
ErrorBulletedList.Items.Add(listItem4);
}
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "error_script", "ErrorMessageModal();", true);
if (InsertSuccess_msg != "")
{
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "success_script", "SuccessfulInsertModal();", true);
}
您想在 addBtn_Click 事件开始时清除 ErrorBulletedList。
例如,
protected void addBtn_Click(object sender, EventArgs e)
{
ErrorBulletedList.Items.Clear();
...
}
我在触发 js 文件中的第二个函数时遇到问题。计划是在成功插入期间显示 1 个模式,如果出现重复错误则显示另一个。成功模式有效,但如果出现错误,我仍然会获得成功模式,除非我注释掉它的代码(测试)。然后第二个函数才会触发。我是 C# 和 Javascript 的新手。任何帮助将不胜感激。我错过了什么????
问题已通过以下代码解决,但现在我遇到了新问题。重复的错误消息大声笑。当错误模式第一次显示有 1 个错误时,它会正确显示。但是,在将已知的重复信息输入到第二个测试字段并提交后,模态 returns 出现了预期的 2 个错误,但现在也复制了第一个,如所附图片所示。
我想我的问题是如何在模式关闭时清除 jquery 中的项目符号列表项?
代码隐藏 ** 为工作代码编辑
public partial class _Default : System.Web.UI.Page
{
SqlConnection con;
}
protected void Page_Load(object sender, EventArgs e)
{
con = new SqlConnection("connection string");
}
protected void addBtn_Click(object sender, EventArgs e)
{
//Create the command and set its properties
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "dupcheck";
cmd.CommandType = CommandType.StoredProcedure;
//Create the parameters and set their properties
cmd.Parameters.Add("@DeviceType", SqlDbType.VarChar, 20).Value = deviceTypeDL.SelectedItem.Text;
cmd.Parameters.Add("@DeviceName", SqlDbType.VarChar, 20).Value = devName.Text;
cmd.Parameters.Add("@DeviceBrand", SqlDbType.VarChar, 20).Value = brand.Text;
cmd.Parameters.Add("@DeviceModel", SqlDbType.VarChar, 20).Value = d_Model.Text;
cmd.Parameters.Add("@DevicePN", SqlDbType.VarChar, 20).Value = partNumber.Text;
cmd.Parameters.Add("@DeviceSN", SqlDbType.VarChar, 20).Value = serialNumber.Text;
cmd.Parameters.Add("@DeviceOS", SqlDbType.VarChar, 20).Value = operatingSystemDL.SelectedItem.Text;
cmd.Parameters.Add("@SPWAgent", SqlDbType.VarChar, 20).Value = spwAgentDL.SelectedItem.Text;
cmd.Parameters.Add("@DeviceStatus", SqlDbType.VarChar).Value = statusDL.SelectedItem.Text;
cmd.Parameters.Add("@DepartmentAbbrev", SqlDbType.VarChar, 20).Value = departmentDL.SelectedItem.Text;
cmd.Parameters.Add("@UserName", SqlDbType.VarChar, 20).Value = username.Text;
cmd.Parameters.Add("@AircardModel", SqlDbType.VarChar, 20).Value = a_Model.Text;
cmd.Parameters.Add("@IMEI_SN", SqlDbType.VarChar, 20).Value = imei_SN.Text;
cmd.Parameters.Add("@PhoneNumber", SqlDbType.VarChar, 20).Value = phoneNumber.Text;
cmd.Parameters.Add("@InsertSuccess_msg", SqlDbType.VarChar, 30);
cmd.Parameters["@InsertSuccess_msg"].Direction = ParameterDirection.Output;
cmd.Parameters.Add("@DeviceNameErr_msg", SqlDbType.VarChar, 30);
cmd.Parameters["@DeviceNameErr_msg"].Direction = ParameterDirection.Output;
cmd.Parameters.Add("@DeviceSnErr_msg", SqlDbType.VarChar, 30);
cmd.Parameters["@DeviceSnErr_msg"].Direction = ParameterDirection.Output;
cmd.Parameters.Add("@IMEI_SnErr_msg", SqlDbType.VarChar, 30);
cmd.Parameters["@IMEI_SnErr_msg"].Direction = ParameterDirection.Output;
cmd.Parameters.Add("@PhoneNumberErr_msg", SqlDbType.VarChar, 30);
cmd.Parameters["@PhoneNumberErr_msg"].Direction = ParameterDirection.Output;
//Excute Query
con.Open();
cmd.ExecuteNonQuery();
con.Close();
//Update Gridview or Display Error Messages
GridView1.DataSourceID = "GridViewSource";
GridView1.DataBind();
String InsertSuccess_msg = cmd.Parameters["@InsertSuccess_msg"].Value.ToString();
String DeviceNameErr_msg = cmd.Parameters["@DeviceNameErr_msg"].Value.ToString();
String DeviceSnErr_msg = cmd.Parameters["@DeviceSnErr_msg"].Value.ToString();
String IMEI_SnErr_msg = cmd.Parameters["@IMEI_SnErr_msg"].Value.ToString();
String PhoneNumberErr_msg = cmd.Parameters["@PhoneNumberErr_msg"].Value.ToString();
if (DeviceNameErr_msg != "")
{
ListItem listItem = new ListItem(DeviceNameErr_msg);
ErrorBulletedList.Items.Add(listItem);
}
if (DeviceSnErr_msg != "")
{
ListItem listItem2 = new ListItem(DeviceSnErr_msg);
ErrorBulletedList.Items.Add(listItem2);
}
if (IMEI_SnErr_msg != "")
{
ListItem listItem3 = new ListItem(IMEI_SnErr_msg);
ErrorBulletedList.Items.Add(listItem3);
}
if (PhoneNumberErr_msg != "")
{
ListItem listItem4 = new ListItem(PhoneNumberErr_msg);
ErrorBulletedList.Items.Add(listItem4);
}
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "error_script", "ErrorMessageModal();", true);
if (InsertSuccess_msg != "")
{
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "success_script", "SuccessfulInsertModal();", true);
}
您想在 addBtn_Click 事件开始时清除 ErrorBulletedList。
例如,
protected void addBtn_Click(object sender, EventArgs e)
{
ErrorBulletedList.Items.Clear();
...
}