在gridview里显示学生信息,在gridview里添加了一个超链接按钮"修改",点击修改就会跳转到修改页面进行修改,在修改页面有dropdownlist控件,已经在修改页面的page_load事件里连接上数据库里面的班级表了,当在gridview点击修改链接时就会在dropdownlist控里面显示相应的班级,其他项会在文本框控件中显示,向各位请教如何在dropdownlist控件里面显示相应班级;之前都没能解决这是在修改页面连接班级的代码 
 Dim sql As String
        Dim conn As New SqlConnection
        conn.ConnectionString = "data source=192.168.31.199;initial catalog=kaoqin manager;user id=james5;password=james5;"
        sql = "select classno,classname from class"
        Dim cmd As New SqlCommand(sql, conn)
        conn.Open()
        Dim dr As SqlDataReader
        dr = cmd.ExecuteReader()
        banji.AppendDataBoundItems = True
        banji.Items.Add(New ListItem("--请选择--", "-1"))
        banji.DataSource = dr
        banji.DataValueField = "classno"
        banji.DataTextField = "classname"
        banji.DataBind()
这是传递参数的代码
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Page.IsPostBack = False Then
            Dim conn As New SqlConnection
            conn.ConnectionString = "data source=192.168.31.199;initial catalog=kaoqin manager;user id=james5;password=james5;"
            Dim sql As String
            sql = "select kaoqinno,riqi,hour,re ,stuname ,mattername,classname  from "
            sql &= "kaoqin,class,matter where kaoqin.classno=class.classno and  kaoqin.matterno=matter.matterno"
            sql &= " and  kaoqinno=" & Request.QueryString("kaoqinno")
            Dim cmd As New SqlCommand(sql, conn)
            conn.Open()
            Dim dr As SqlDataReader = cmd.ExecuteReader
            If dr.Read Then
                xingming.Value = dr.Item("stuname").ToString
                riqi.Value = dr.Item("riqi").ToString
                keshi.Value = dr.Item("hour").ToString
                beizhu.Value = dr.Item("re").ToString
                Label3.Text = dr.Item("kaoqinno").ToString
                banji.Items.FindByText("classname").Selected = True  '这句不行
                           
                conn.Close()
            End If
            Call banji()
            End If    End Sub
banji()就是上面绑定班级的代码

解决方案 »

  1.   

    首先,在你点修改按钮的时候传递一个参数班级的ID或者班级名称到修改页面
    然后,在修改页面绑定完 DropDownList 之后,然后将 DropDownList 的选中项设定为你传过来的参数就可以了
    最后,如果问题解决记得给分,嘿嘿
      

  2.   

    绑定 DropDownList 原来的数据,然后banji.SelectValue = dr.Item("字段").ToString
      

  3.   

    你可直接在gridview模板列中加一个DropDownList,让其BIND到班级,然后就可修改了,不需要另外一页面。
      

  4.   

    if(!Page.IsPostBack)
    {
    string theClass = "读取的班级名称";
    //注释部分--------------------------------------------------------------------------
        //1.如果你用Session保存数组传递,string[] cls = (string[])session["class"]; theClass= cls[i] 这里 i为GridView中班级列的索引;
    2.如果你用 全局类 传递GridView一行信息,假设全局类的名为 
    public class tClass
    {
    public string myclass;
    .......;
    ......;
    }
    则theClass = tClass.myclass;
    3.如果你用最麻烦一点的根据 Request.QueryString["ID"]来重读数据库,就是SqlDataReader dr; theClass = dr["数据库表中班级字段名"].ToString();
    //----------------------------------------------------------------------
    ListItem LI = (ListItem)DropDownList1.Items.FinByText("theClass");
    if(LI != null)
    {
    LI.Selected = true;
    }
    }
      

  5.   

    你代码的位置放的不对.. Dim sql As String
            Dim conn As New SqlConnection
            conn.ConnectionString = "data source=192.168.31.199;initial catalog=kaoqin manager;user id=james5;password=james5;"
            sql = "select classno,classname from class"
            Dim cmd As New SqlCommand(sql, conn)
            conn.Open()
            Dim dr As SqlDataReader
            dr = cmd.ExecuteReader()
            banji.AppendDataBoundItems = True
            banji.Items.Add(New ListItem("--请选择--", "-1"))
            banji.DataSource = dr
            banji.DataValueField = "classno"
            banji.DataTextField = "classname"
            banji.DataBind()
            banji.Items.FindByText("classname").Selected = True  顺便提一句,按你现在的写法 "--请选择--"是出不来的如果还是没有解决,麻烦代码贴的详细些,出错信息也说明清楚
      

  6.   

    1。
    banji.Items.FindByText("classname").Selected = True  》》》Dim myClassName as string 
    // myClassName = Request.QueryString("selectedClassName"); // such as "高一1班";banji.Items.FindByText(myClassName).Selected = True  // 使用具体的班级2。
    顺便提一句,按你现在的写法 "--请选择--"是出不来的
    ----------------------------------------------------------
    @amandag(高歌)刚好出得来,因为他设置了 banji.AppendDataBoundItems = True
      

  7.   

    按@amandag(高歌)的做法提示找不到对象,按Jinglecat(晓风残月) 的做法又不知道该怎样改代码,初学.net就这样,遇到问题就会郁闷好久的
      

  8.   

    按@amandag(高歌)的做法是提示"未将对象引用到设置对象的实例"