dropdownlist控件的问题,在线急等
在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,remark ,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( "remark ").ToString
Label3.Text = dr.Item( "kaoqinno ").ToString
banji.Items.FindByText( "classname ").Selected = True '这句不行
conn.Close()
End If
Call banji()
End If
End Sub
banji()就是上面绑定班级的代码
[解决办法]
首先,在你点修改按钮的时候传递一个参数班级的ID或者班级名称到修改页面
然后,在修改页面绑定完 DropDownList 之后,然后将 DropDownList 的选中项设定为你传过来的参数就可以了
最后,如果问题解决记得给分,嘿嘿
[解决办法]
绑定 DropDownList 原来的数据,然后banji.SelectValue = dr.Item( "字段 ").ToString
[解决办法]
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;
}
}
[解决办法]
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