本帖最后由 kongku 于 2009-09-21 13:15:21 编辑

解决方案 »

  1.   

    默认值的话,令GridView的Visible为false不就什么数据都看不见了吗?
      

  2.   


    DropDownList1.Itmes.Add("--");
    if(DropDownList1.SelectedValue.ToString()=="--" )
    {
    //不操作 就不会显示的
    }
    else
    {
     //自己随便发挥
    }
      

  3.   

    就是要根据DDL所选的内容显示gridview的数据?
    获得ddl.seletevalue的值,之后再拼select语句就可以了啊。。
      

  4.   

    当我选择下拉列表的默认值的时候,不显示任何数据。
    这样的话 你就做个判断就是了 
    if(=="你的默认值")
    数据不绑定
    else
    {绑定}
      

  5.   

    不好意思,让大家误会了,我是想让gridview显示全部数据。
      

  6.   

        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (this.DropDownList1.SelectedValue == "")
            {
                this.SqlDataSource2.SelectCommand = "SELECT [Id], [Title], [Authorized], [CreateDateTime] FROM [Review]";
                this.GridView1.DataSourceID = "SqlDataSource2";
            }
        }
    为什么,我这里的代码不能让gridview显示全部数据?
      

  7.   

    最后还需要再GridView1.databind()一下吧
      

  8.   

    SelectCommand是可以动态修改的,可以在数据源的selecting中动态修改。我不用sqldatasource,所以无法给出demo。
      

  9.   


    我把代码改成这样
        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (this.DropDownList1.SelectedValue == "")
            {
                this.SqlDataSource2.SelectCommand = "SELECT [Id], [Title], [Authorized], [CreateDateTime] FROM [Review]";
                this.GridView1.DataSourceID = "SqlDataSource2";
            }
        }编译器错误消息: CS1061: “System.Web.UI.WebControls.GridView”不包含“databind”的定义,并且找不到可接受类型为“System.Web.UI.WebControls.GridView”的第一个参数的扩展方法“databind”(是否缺少 using 指令或程序集引用?)
      

  10.   

    上面的代码,我还没有把GridView1.databind()加上去。就是
    this.SqlDataSource2.SelectCommand = "SELECT [Id], [Title], [Authorized], [CreateDateTime] FROM [Review]";
                this.GridView1.DataSourceID = "SqlDataSource2";
                GridView1.databind();
      

  11.   

    改回this.GridView1.DataBind();
    但还是不能实现显示全部。
      

  12.   

    你用的SqlDataSource控件,你在里面设定的Select语句是什么样,那出来的就是什么样,你看下你的SqlDataSource2控件里面的Select语句是写成什么样的。。PS:还是用DataSet、DataTable这些比较灵活,用SqlDataSource控件的话,可能你要把你的GridView根据不同的情况绑定到多个SqlDataSource控件中,,到时候维护起来会比较麻烦。。
      

  13.   

    <asp:ListItem Value="-1">显示全部</asp:ListItem>不能大于0或是其它字符.我这里设置为-1.
     protected void Page_Load(object sender, EventArgs e)
        {
            if (this.DropDownList1.SelectedValue == "-1")
            {
                this.LinqDataSource1.Where= null;
            }
        }
    这里就可以默认情况下,显示全部.
    还要设置这个,就可以在选中后,显示全部. protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {        if (this.DropDownList1.SelectedValue == "-1")
            {
                this.LinqDataSource1.Where = null;
            }
        }
      

  14.   

    我看的书是<asp.net 3.5 入门经典> 看你的代码应该就是这书上的,因为我也是在学这本,然后同样想到这个问题,上百度一查,到了这里,没找到解决办法,后来,我自己乱写搞出来的,运行过,没问题.