我有一个名为NumberOfSelect
的ASP.NET页面参数,如何在PostBack上更改此参数?
我想在用户点击按钮时增加所选项目的数量。
但在回发后它有0值!
public partial class FetchOnDemand : System.Web.UI.Page
{
int NumberOfSelect=0;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
NumberOfSelect = 20;
}
SqlConnection con = new SqlConnection("");
string strSql = "Select TOP " + NumberOfSelect + " * From Comment_Table";
SqlDataAdapter dap = new SqlDataAdapter(strSql, con);
DataTable dt = new DataTable();
dap.Fill(dt);
tblOrders.DataSource = dt;
tblOrders.DataBind();
}
protected void hiddenButton_Click(object sender, EventArgs e)
{
NumberOfSelect = NumberOfSelect + 10;
}
}
答案 0 :(得分:0)
对页面的每个请求,无论是否为回发,都是新请求,这意味着您的FetchOnDemand
类会在每次请求时重新实例化,重置您的私有字段到0
。您应该手动将值存储在ViewState
中,或使用<asp:HiddenField />
控件来存储值。
这是ViewState
方法。不要使用私有字段,而是设置一个可以读写ViewState
:
protected int NumberOfSelect
{
get
{
return (int)ViewState["NumberOfSelect"];
}
set
{
ViewState["NumberOfSelect"] = value;
}
}