在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()就是上面绑定班级的代码
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()就是上面绑定班级的代码
然后,在修改页面绑定完 DropDownList 之后,然后将 DropDownList 的选中项设定为你传过来的参数就可以了
最后,如果问题解决记得给分,嘿嘿
{
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;
}
}
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 顺便提一句,按你现在的写法 "--请选择--"是出不来的如果还是没有解决,麻烦代码贴的详细些,出错信息也说明清楚
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