none
动态绑定datasource+Detailsview+dropdownlist RRS feed

  • 问题

  • detailsview中dropdownlist的datasource要根据条件选择不同的datasourceid

    Dim DDL As DropDownList
    Dim SDS As SqlDataSource

    SDS = CType(DetailsView1.Rows(3).FindControl("sqldatasource4"), SqlDataSource)
    DDL = CType(DetailsView1.Rows(3).FindControl("DropDownList1"), DropDownList)
    DDL.DataSourceID = SDS.ID

    这样不行,哪位知道,谢谢。

    2011年6月15日 6:02

答案

  • 你好,

    你可以用类似下面的方法做:

    SqlConnection conn = new SqlConnection("server=(local);database=OA;integrated security=sspi");
        string sql1 = "select BookingID from Booking";
        SqlCommand cmd = new SqlCommand(sql1, conn);
        conn.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        ddl.DataSource = dr;
    

    2011年6月16日 16:47
    版主

全部回复

  • 你好,

    你可以用类似下面的方法做:

    SqlConnection conn = new SqlConnection("server=(local);database=OA;integrated security=sspi");
        string sql1 = "select BookingID from Booking";
        SqlCommand cmd = new SqlCommand(sql1, conn);
        conn.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        ddl.DataSource = dr;
    

    2011年6月16日 16:47
    版主
  • 谢谢

    我用了2种方式,第一是sqldatasource,第二是如你所示的datasource,代码如下

           With myData
                .SelectCommand = New SqlCommand
                .SelectCommand.Connection = objCn
                .SelectCommand.CommandType = CommandType.Text
                .SelectCommand.CommandText = sQuery
            End With

            myData.Fill(myDataset)

            Dim DDL As DropDownList
           
            DDL = CType(DetailsView1.Rows(3).FindControl("DropDownList1"), DropDownList)

            DDL.DataSource = myDataset
            DDL.DataTextField = "cProjectName"
            DDL.DataValueField = "cProjectCode"
            DDL.DataBind()

    此代码在页面中,在detailsview控件外,执行正确,但问题是,这个dropdownlist在detailsview中,执行报错

    DDL = CType(DetailsView1.Rows(3).FindControl("DropDownList1"), DropDownList),索引超出范围,必须为非负值并小于集合大小,参数名index

    不解。

    2011年6月17日 3:04
  • 你好,

    debug下吧,看看哪里出了问题。

    2011年6月17日 8:14
    版主