如何在帖子上更改页面类参数

时间:2014-06-02 13:24:41

标签: c# asp.net

我有一个名为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;


    }
}

1 个答案:

答案 0 :(得分:0)

对页面的每个请求,无论是否为回发,都是请求,这意味着您的FetchOnDemand类会在每次请求时重新实例化,重置您的私有字段到0。您应该手动将值存储在ViewState中,或使用<asp:HiddenField />控件来存储值。

这是ViewState方法。不要使用私有字段,而是设置一个可以读写ViewState

的属性
protected int NumberOfSelect
{
   get
   {
      return (int)ViewState["NumberOfSelect"];
   }
   set
   {
      ViewState["NumberOfSelect"] = value;
   }
}