编辑:
添加了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”?