模态弹出扩展程序丢失ID

时间:2013-04-02 16:27:26

标签: c# asp.net

修改

添加了onload方法:

protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["usersName"] != null)
        {

            object a = Session["_id"];

            IDMaster = Convert.ToInt32(a);

            GridView1.Columns[10].Visible = true;
            GridView1.Columns[11].Visible = true;


        }

我使用模态弹出扩展器警告我的客户特定商品的商品金额超过一定数量。

我在此扩展程序中有两个按钮,允许用户确认他们想要在新股票到货时向他们发送电子邮件。

触发“是”'按钮工作正常但当我将行ID发送到我的类的构造函数用于存储电子邮件详细信息时,它总是设置为0,即使该变量是全局的。

以下是我的代码,可以进一步解释这个问题:

我的模式中的按钮,用于将商品添加到购物车:

protected void LinkButton1_Click(object sender, EventArgs e)   
    {


        GridViewRow row = ((Button)sender).Parent.Parent as GridViewRow;
        TextBox t = (TextBox)row.FindControl("txtQuan");

        *********Gain the item row ID (this is what needs to be passed*******
        object ID = GridView1.DataKeys[row.RowIndex].Value;

        *********This ID should be passed but is setting to 0************
        rowID = Convert.ToInt32(ID);

        string qty = t.Text;

        int stockToAdd = Convert.ToInt32(qty);

        DBHandler add = new DBHandler(rowID);

        int qtyCheck = add.getStockQty();

        if (stockToAdd > qtyCheck)
        {

            Button2_ModalPopupExtender.Show();

        }

        else{


            SqlConnection con;
            con = add.openDB();

            con.Open();

            DBHandler idCheck = new DBHandler(rowID);
            int rows = idCheck.checkCartRows();

            if (rows > 0)
            {

               int qtyNow = idCheck.getCartQty();

                int updateStock = qtyNow + stockToAdd;

                idCheck.updateQty(rowID, updateStock);
                updatePanel();

            }

            else
            {

                idCheck.insertCart(qty);
                updatePanel();

            }
            add.close();

        }


        }

以下代码显示我的确认onclick按钮方法。请注意ID' rowID'单击“添加到购物车”按钮时存储在上述方法中的内容。此rowID设置为0而不是保存rowID值。

 protected void btnOK_Click(object sender, EventArgs e)
    {
       ***** rowID is setting to 0*******
        DBoutOfStockEmail insertNewEmailDetail = new DBoutOfStockEmail(IDMaster, rowID);

        DBMembershipHandler getEmail = new DBMembershipHandler(IDMaster);

        string emailToSend = getEmail.emailOfMember();

        insertNewEmailDetail.insertDetails(emailToSend);

    }

总结这个问题:为什么rowID变量设置为' 0'当我用模态弹出扩展器点击是按钮时?

1 个答案:

答案 0 :(得分:0)

根据我的初步评论,我将发布此答案

  

这可以来自几个方面..你在检查或做IsPostBack检查,你是否在会话变量中持有值? ViewState是启用还是禁用..?你可以展示你的Page_Load事件看起来像什么