|
设置DropDownList的当前选项
问: 请问一下在asp.net中的DropDownList绑定到一个数据表后,怎么设置他其中的一个项目为已选项啊?不要叫我用SelectedIndex来设置第几的个,我只能知道要设置已选的那个项目的值,并不知道他排在第几位 ______________________________________________________________________________________________ 答1: myDrop.Items.Add("请选择"); myDrop.SelectedIndex=myDrop.Items.Count-1; ______________________________________________________________________________________________ 答2: DDLUnitQuery.Items.FindByText("所有").Selected=true; ______________________________________________________________________________________________ 答3: 由于你的DropDownList是绑定到数据表的,所以DropDownList和数据表中的顺序是一样的。你可以写个函数,判断当前DropDownList的选定值在数据表中是第几个: // public int getSelectedIndex(string str) { int idx=0; dsEditData1=(dsEditData)Session["dsEditData1"]; for(int i=0;i<dsEditData1.EDIT_DATAlIST.Rows.Count;i++) { dsEditData.EDIT_DATAlISTRow editRow=(dsEditData.EDIT_DATAlISTRow)dsEditData1.EDIT_DATAlIST.Rows[i]; string dataStr=editRow.editValue; if(dataStr==str) { idx=i; break; } } return idx; }
然后在HTML代码中绑定SelectedIndex值: // asp:DropDownList id=DropDownList1 runat="server" DataMember="EDIT_DATAlIST" DataSource="<%# dsEditData1 %>" Width="93px" DataTextField="editData" DataValueField="editValue" SelectedIndex='<%# getSelectedIndex(DataBinder.Eval(Container, "DataItem.personationid").ToString()) %>'> </asp:DropDownList> ______________________________________________________________________________________________ 答4: DropDownList.Items.FindByText("你的值").Selected=true; DropDownList.Items.FindByValue("你的值").Selected=true; ______________________________________________________________________________________________ 答5: DropDownList1.SelectedIndex=-1; DropDownList1.Items.FindByText("选定项目的值").Selected=true;
or
DropDownList1.SelectedIndex=-1; DropDownList1.Items.FindByValue("选定项目的值").Selected=true; ______________________________________________________________________________________________ 答6: 我有一办法,从数据库检取,这个是radioButtonList,需要使用哈希表,你可以参考一下 using System.Web.SessionState;
public class modrole : System.Web.UI.Page { public Hashtable StateIndex; private void Page_Load(object sender, System.EventArgs e) { StateIndex = new Hashtable(); myConnection = new OleDbConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]); if (!IsPostBack) BindGrid(); }
//数据绑定 public void BindGrid() { OleDbDataReader myReader; String sql = "select * from tb_role order by roleid"; OleDbDataAdapter myCommand = new OleDbDataAdapter(sql, myConnection); DataSet ds = new DataSet(); myCommand.Fill(ds, "tb_role"); DataView dv = ds.Tables["tb_role"].DefaultView; if (ds.Tables["tb_role"].Rows.Count !=0) //如果表不空,绑定数据 { rbtl_role.DataSource=ds.Tables["tb_role"].DefaultView; rbtl_role.DataTextField = "rolename"; rbtl_role.DataValueField = "roleid"; rbtl_role.DataBind(); } //对RadioButtonList进行哈稀编号,保持同RadioButtonList.SelectedIndex的值一致编号 int i = 0; foreach(DataRowView drv in dv ) { StateIndex[drv.Row["roleid"]]=i; i++; } //进行比较,对选中的进行设置 sql = "select roleid from tb_userrole where user_id=1"; OleDbCommand myCmd = new OleDbCommand(sql, myConnection); myConnection.Open(); myReader = myCmd.ExecuteReader(); while (myReader.Read()) { //此句选中设置 rbtl_role.SelectedIndex = Convert.ToInt32(StateIndex[myReader["roleid"]].ToString()); } // always call Close when done reading. myReader.Close(); // Close the connection when done with it. myConnection.Close(); }
______________________________________________________________________________________________ 答7: imfine,感谢你,你的方法最直观:) |
|