C# -- 无法将类型 'System.Web.UI.Control' 隐式转换为 'System.Web.UI.WebControls.CheckBox'
C# -- Cannot implicitly convert type 'System.Web.UI.Control' to 'System.Web.UI.WebControls.CheckBox'
int p = 0;
int q = 0;
p = 0;
q = 0;
string username = null;
username = Session["user"];
int total = 0;
for (total = 1; total <= 120; total++) {
CheckBox ch = new CheckBox();
ch = Page.FindControl("C" + total);
if (ch.Checked == true & ch.Enabled == true) {
string query = "insert into order_master values('" + username + "','" + drpselectmovie.SelectedValue + "','" + drpselectdate.SelectedValue + "','" + drpselectshow.SelectedValue + "'," + drpselectclass.SelectedValue + ",'" + ch.ID + "'," + drpselectclass.SelectedValue + ")";
SqlClient.SqlCommand cmd = new SqlClient.SqlCommand(query, cn);
cmd.ExecuteNonQuery();
ch.Enabled = false;
if (total <= 72) {
p = p + 1;
} else {
q = q + 1;
}
}
}
int price = 0;
price = p * 180 + q * 120;
txtprice.Text = price.ToString;
Session.Add("tickettotal", txtprice.Text);
cn.Close();
Total 是一个变量,用于确定已选中哪些复选框的复选框数。在其设计或 .aspx 代码中,我将所有复选框 ID 更改为 C1、C2、C3 等。这就是为什么需要 "C" + total 才能找到,这样它就等于它的 ID。但是,我在 ch = Page.FindControl("C" + total) 中遇到错误。有谁知道如何解决这个问题?是申报错误吗?还是我忘记在代码中添加什么?
谢谢!
这是因为您尝试将父项 class (System.Web.UI.Control
) 设置为子项 class (System.Web.UI.WebControls.CheckBox
):
ch = Page.FindControl("C" + total);
使用关键字as
正确赋值:
ch = Page.FindControl("C" + total) as CheckBox;
请注意,如果 System.Web.UI.Control
不是 System.Web.UI.WebControls.CheckBox
类型,您可能会得到 null
。
在 for 循环中声明 "CheckBox ch = new CheckBox();" 看起来很奇怪。尝试在 for 循环之前声明它。我可能是错的...
int p = 0;
int q = 0;
p = 0;
q = 0;
string username = null;
username = Session["user"];
int total = 0;
for (total = 1; total <= 120; total++) {
CheckBox ch = new CheckBox();
ch = Page.FindControl("C" + total);
if (ch.Checked == true & ch.Enabled == true) {
string query = "insert into order_master values('" + username + "','" + drpselectmovie.SelectedValue + "','" + drpselectdate.SelectedValue + "','" + drpselectshow.SelectedValue + "'," + drpselectclass.SelectedValue + ",'" + ch.ID + "'," + drpselectclass.SelectedValue + ")";
SqlClient.SqlCommand cmd = new SqlClient.SqlCommand(query, cn);
cmd.ExecuteNonQuery();
ch.Enabled = false;
if (total <= 72) {
p = p + 1;
} else {
q = q + 1;
}
}
}
int price = 0;
price = p * 180 + q * 120;
txtprice.Text = price.ToString;
Session.Add("tickettotal", txtprice.Text);
cn.Close();
Total 是一个变量,用于确定已选中哪些复选框的复选框数。在其设计或 .aspx 代码中,我将所有复选框 ID 更改为 C1、C2、C3 等。这就是为什么需要 "C" + total 才能找到,这样它就等于它的 ID。但是,我在 ch = Page.FindControl("C" + total) 中遇到错误。有谁知道如何解决这个问题?是申报错误吗?还是我忘记在代码中添加什么?
谢谢!
这是因为您尝试将父项 class (System.Web.UI.Control
) 设置为子项 class (System.Web.UI.WebControls.CheckBox
):
ch = Page.FindControl("C" + total);
使用关键字as
正确赋值:
ch = Page.FindControl("C" + total) as CheckBox;
请注意,如果 System.Web.UI.Control
不是 System.Web.UI.WebControls.CheckBox
类型,您可能会得到 null
。
在 for 循环中声明 "CheckBox ch = new CheckBox();" 看起来很奇怪。尝试在 for 循环之前声明它。我可能是错的...