当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 设置DropDownList的当前选项

ASP.NET
从一个舆论调查的制作谈面向对象的编程思路(二)
从一个舆论调查的制作谈面向对象的编程思路(三)
从一个舆论调查的制作谈面向对象的编程思路(四)
从一个舆论调查的制作谈面向对象的编程思路(五)
c#写的五子棋程序,供学习WinForms的鼠标事件和使用GDI+
我对.Net技术中asp.net应用的一点看法
ASP.NET连SQL7接口源代码
ASP.NET中密码保护,MD5和SHA1算法的使用
微软的远程处理框架.NET Remoting - 1
微软的远程处理框架.NET Remoting - 2
黑客写出了针对.Net平台的反编译器
在config.web中保存数据库连接串
在ASP.Net中两种利用CSS实现多界面的方法
ASP.NET中如何调用存储过程
ASP.NET中取代ASP的RS(Remote Scripting)技术的Framework
刚学ASP.Net,学了个简单的计算器
ASP.NET 链接数据库基础
一个简单的加密/解密方法
加入身份验证信息的SMTP mail发送
webconfig的设置节点说明

ASP.NET 中的 设置DropDownList的当前选项


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 204 ::
收藏到网摘: n/a

问:
请问一下在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,感谢你,你的方法最直观:)