当前位置: 代码迷 >> ASP.NET >> 求答案 GridView1.Rows.Count 一直等于0解决思路
  详细解决方案

求答案 GridView1.Rows.Count 一直等于0解决思路

热度:6866   发布时间:2013-02-25 00:00:00.0
求答案 GridView1.Rows.Count 一直等于0
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
  {
  CheckBox chkID = (CheckBox)GridView1.Rows[i].FindControl("chkID");
  if (chkID.Checked)
  {
  strIDs += GridView1.DataKeys[i].Value.ToString() + ",";
  }
  }

GridView1.Rows.Count =0
查到有说把绑定数据放在 if (!IsPostBack)外面,这样是取到了值,但是我下拉框的是搜索就用不起来了,每次都是回来搜索前的结果

求解决方法  
  <asp:DropDownList ID="DropDownList1" runat="server">
  <asp:ListItem Value="-1">显示全部</asp:ListItem>
  <asp:ListItem Value="0">未审核</asp:ListItem>
  <asp:ListItem Value="1">付款成功</asp:ListItem>
  <asp:ListItem Value="2">商品出库</asp:ListItem>
  <asp:ListItem Value="3">等待收货</asp:ListItem>
  <asp:ListItem Value="4">完成</asp:ListItem>
  </asp:DropDownList>

  protected void Page_Load(object sender, EventArgs e)
  {
  if (!IsPostBack)
  {
  BindData();
   
   
  }

   
  }
  /// <summary>
  /// 数据绑定
  /// </summary>
  private void BindData()
  {
  string sql = "where UserID=" + Common.LoginHelper.UserID;
   
   
  int statusFlag = ConfigParam.StatusFlag;

  if (ConfigParam.StatusFlag >= 0)
  {
  DropDownList1.SelectedValue = statusFlag.ToString();
  sql += " and StatusFlag = " + statusFlag.ToString();
  }
 
  int total = 0;
  int PageIndex = ConfigParam.Page;
  int PageSize = GridView1.PageSize;
  GK2010.BLL.MemberOrder bll = new GK2010.BLL.MemberOrder();

------解决方案--------------------------------------------------------
产品页面会出现乱码?
这个跟EnableViewState=true没有任何关系,是你的代码写的有问题

要想保持状态,必须EnableViewState=true
  相关解决方案