简体   繁体   中英

Calling Javascript function from C# Code behind using RegisterStartupScript w/ js file

I'm having an issue getting the 2nd function in my js file to fire. The plan is to have 1 modal show during successful insert and the other if there are duplicate errors. The Success Modal works but if there is an error I still get the Success modal unless I comment out the code for it(testing). Then and only then does the 2nd function fire. I'm new to both C# and Javascript. Any help would be greatly appreciated. What am I missing????

Problem resolved with code below, but now I have a new issue. Duplicate error messages lol. When the error modal displays for the first time say with 1 error, it displays correctly. However, after entering known duplicate info into the 2nd tested field and submitted, the modal returns with the 2 errors as expected, but has also now duplicated the first as seen in the image attached.

在此输入图像描述

I guess my question is how do I clear the bulleted list items from jquery on modal close?

Code Behind ** edited for working code

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

在此输入图像描述

You want to clear ErrorBulletedList at the beginning of addBtn_Click event.

For example,

protected void addBtn_Click(object sender, EventArgs e)
{
    ErrorBulletedList.Items.Clear();
    ...
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM