凡是做ddl绑定记得2点:ddlType_SelectedIndexChanged绑定,AutoPostBack 设为true

从数据库绑定ddl

//绑定机构
        void BindSac()
        {
            
string sqlString = "select StockPool_ssiSac from  dbo.StockPool group by StockPool_ssiSac";
            SqlHelper sql 
= new SqlHelper(SqlHelper.stockConString);
            DataTable dt 
= sql.ExecuteDataTable(sqlString);
            ddlSac.DataSource 
= dt;
            ddlSac.DataTextField 
= "StockPool_ssiSac";
            ddlSac.DataValueField 
= "StockPool_ssiSac";
            ddlSac.DataBind();
            ddlSac.Items.Insert(
0,new ListItem("请选择……","0"));
        }

 ------------------------------------------------------------------------------------------------------

从页面绑定


                            <asp:ListItem Value="" Selected="True">请选择……</asp:ListItem>
                            
<asp:ListItem Value="保险">保险</asp:ListItem>
                            
<asp:ListItem Value="股票">股票</asp:ListItem>
                            
<asp:ListItem Value="基金">基金</asp:ListItem>
                            
<asp:ListItem Value="外汇">外汇</asp:ListItem>
                            
<asp:ListItem Value="银行理财产品">银行理财产品</asp:ListItem>
                        
</asp:dropdownlist>

改变ddl时dg中的显示也会改变,那么1、AutoPostBack="True"   2、要绑定ddlType_SelectedIndexChanged事件

 

Code
//类型下拉框切换绑定
        private void ddlType_SelectedIndexChanged(object sender, System.EventArgs e)
        {
               BindDg();
            txteditKey.Text 
= "";//每次将隐藏域里的id清空
        }

 注意:如果有分页,所有服务器控件是会保留状态的,如果“保险”类别有第3页,而“基金”类别没有的话,页面就会报错,在切换前要将CurrentPageIndex设为0,在ddlType_SelectedIndexChanged事件中将其设为0没有用,因为页面最先在pageLoad中加载,一加载就报错了,所以应在PageLoad中判断旧页数是否大于新页数,是就将页数清零。

        }

这里Dg.PageSize-1,是由于每到10,20,30都多算一页,所以要减一,不然20+10/20就变成3页了,其实只有2页

注:在Dg.DataBind()之前的Dg都是上一次绑定的Dg

相关文章:

  • 2021-08-11
  • 2021-11-05
  • 2021-06-13
  • 2021-10-07
  • 2022-03-03
  • 2021-09-20
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-01-16
  • 2021-08-20
  • 2021-06-04
  • 2021-11-25
  • 2021-09-01
  • 2022-01-07
  • 2021-04-10
相关资源
相似解决方案