您的位置:首页 > 运维架构

Dropdownlist绑定数据源之后,如何设置期中一个项目为已选项

2012-12-14 22:43 459 查看
http://www.jb51.net/article/13427.htm

 

问:

请问一下在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();

}

________________________

详细出处参考:http://www.jb51.net/article/13427.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Asp.net DropDownList
相关文章推荐