广

ASP.NET

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    设置DropDownList的当前选项

    2018-05-07 10:24:11 次阅读 稿源:互联网
    广告
    问:
    请问一下在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,感谢你,你的方法最直观:)

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告