设置DropDownList的当前选项

时间:2021-05-18

问:
请问一下在asp.net中的DropDownList绑定到一个数据表后,怎么设置他其中的一个项目为已选项啊?不要叫我用SelectedIndex来设置第几的个,我只能知道要设置已选的那个项目的值,并不知道他排在第几位
______________________________________________________________________________________________
答1:
myDrop.Items.Add("请选择");
myDrop.SelectedIndex=myDrop.Items.Count-1;
______________________________________________________________________________________________
答2:
DDLUnitQuery.Items.FindByText("所有").Selected=true;
______________________________________________________________________________________________
答3:
由于你的DropDownList是绑定到数据表的,所以DropDownList和数据表中的顺序是一样的。你可以写个函数,判断当前DropDownList的选定值在数据表中是第几个:
//
publicintgetSelectedIndex(stringstr)
{
intidx=0;
dsEditData1=(dsEditData)Session["dsEditData1"];
for(inti=0;i<dsEditData1.EDIT_DATAlIST.Rows.Count;i++)
{
dsEditData.EDIT_DATAlISTRoweditRow=(dsEditData.EDIT_DATAlISTRow)dsEditData1.EDIT_DATAlIST.Rows[i];
stringdataStr=editRow.editValue;
if(dataStr==str)
{
idx=i;
break;
}
}
returnidx;
}

然后在HTML代码中绑定SelectedIndex值:
//
asp:DropDownListid=DropDownList1runat="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,需要使用哈希表,你可以参考一下
usingSystem.Web.SessionState;

publicclassmodrole:System.Web.UI.Page
{
publicHashtableStateIndex;
privatevoidPage_Load(objectsender,System.EventArgse)
{
StateIndex=newHashtable();
myConnection=newOleDbConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
if(!IsPostBack)
BindGrid();
}


//数据绑定
publicvoidBindGrid()
{
OleDbDataReadermyReader;
Stringsql="select*fromtb_roleorderbyroleid";
OleDbDataAdaptermyCommand=newOleDbDataAdapter(sql,myConnection);
DataSetds=newDataSet();
myCommand.Fill(ds,"tb_role");
DataViewdv=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的值一致编号
inti=0;
foreach(DataRowViewdrvindv)
{
StateIndex[drv.Row["roleid"]]=i;
i++;
}
//进行比较,对选中的进行设置
sql="selectroleidfromtb_userrolewhereuser_id=1";
OleDbCommandmyCmd=newOleDbCommand(sql,myConnection);
myConnection.Open();
myReader=myCmd.ExecuteReader();
while(myReader.Read())
{
//此句选中设置
rbtl_role.SelectedIndex=Convert.ToInt32(StateIndex[myReader["roleid"]].ToString());
}
//alwayscallClosewhendonereading.
myReader.Close();
//Closetheconnectionwhendonewithit.
myConnection.Close();
}

______________________________________________________________________________________________
答7:
imfine,感谢你,你的方法最直观:)

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章