1. 程式人生 > >asp.net中dropdownlist控制元件例項操作

asp.net中dropdownlist控制元件例項操作


.aspx程式碼如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Sample 3-10 11.aspx.cs" Inherits="Sample_3_7" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <link href="StyleSheet.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <h2>DropDownList</h2>
        <div id="div_p1">
        <p>選定某一項後,自動列出該項的index,text,value</p>
            <asp:DropDownList ID="ddl_1" runat="server" AutoPostBack="True" 
                onselectedindexchanged="ddl_1_SelectedIndexChanged">
                <asp:ListItem Value="first">選定第一項</asp:ListItem>
                <asp:ListItem Value="second">選定第二項</asp:ListItem>
                <asp:ListItem Value="third">選定第三項</asp:ListItem>
            </asp:DropDownList>
            <br /><br />

            <span class="w250">獲取選定項的selectedIndex:</span><asp:TextBox ID="txt_index" runat="server"></asp:TextBox> 
            <br />
            <span class="w250">獲取選定項的selectedText:</span><asp:TextBox ID="txt_text" runat="server"></asp:TextBox> 
            <br/>
            <span class="w250">獲取選定項的selectedValue:</span><asp:TextBox ID="txt_value" runat="server"></asp:TextBox> 
            <br />
            <span class="w250">獲取ddl中總共有多少個選項:</span><asp:TextBox ID="txt_ItemCount" runat="server"></asp:TextBox> 
            <br />
            <br/>
            <asp:Button ID="btn_clear" runat="server" Text="清除所有的項" 
                onclick="btn_clear_Click" />

            <asp:Button ID="btn_s3" runat="server" Text="自動選中第三項" onclick="btn_s3_Click" />
            </div>

        <hr />
        <div id="div_p2">
         <p>讓DropdownList也可以作為導航:</p>
            <asp:DropDownList ID="ddl_nav" runat="server" DataSourceID="ADS_NAV" 
                DataTextField="網站名稱" DataValueField="網址" >
            </asp:DropDownList>
            <asp:Button ID="Button1" runat="server" Text="go >" onclick="Button1_Click" />
            <asp:AccessDataSource ID="ADS_NAV" runat="server" DataFile="~/DATA/51ZXW.mdb" 
                SelectCommand="SELECT [網站名稱], [網址] FROM [TB_HLINKS]"></asp:AccessDataSource>

             <br />
            <asp:Button ID="Button2" runat="server" Text="設定第三項的內容與網址,到google" 
                onclick="Button2_Click" />
            <br />
            <asp:Button ID="Button3" runat="server" Text="給ddl_nav新增一個ListItem(物件)" 
                onclick="Button3_Click" />
        </div>
    
    </div>
    </form>
</body>
</html>

頁面佈局如下:


.aspx.cs程式碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


public partial class Sample_3_7 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {


    }






    protected void ddl_1_SelectedIndexChanged(object sender, EventArgs e)
    {
        txt_index.Text = ddl_1.SelectedIndex.ToString();
        //注意獲取text需要2個步驟:1 獲取選定的Item; 2 獲取Item的Text
        txt_text.Text = ddl_1.SelectedItem.Text;
        //也可以用更復雜的結構獲取text(僅作為邏輯教學)
        //txt_text.Text = ddl_1.Items[ddl_1.SelectedIndex].Text;


        txt_value.Text = ddl_1.SelectedValue;


        txt_ItemCount.Text = ddl_1.Items.Count.ToString();


    }


    //重定向
    protected void Button1_Click(object sender, EventArgs e)
    {
        string url = ddl_nav.SelectedValue;
        //請注意這個語句:重定向
        Response.Redirect(url);
    }


    //清除所有項
    protected void btn_clear_Click(object sender, EventArgs e)
    {
        ddl_1.Items.Clear();


    }
    protected void btn_s3_Click(object sender, EventArgs e)
    {
        //在設定之前,先要清除原先的選項,否則報錯
        ddl_1.SelectedItem.Selected = false;




        //注意第三項的下標是2:
        ddl_1.Items[2].Selected = true;
        //Response.Write(ddl_1.GetType().ToString());


    }


    //手動修改一項google
    protected void Button2_Click(object sender, EventArgs e)
    {
        ddl_nav.Items[2].Text = "GOOGLE";
        ddl_nav.Items[2].Value = "http://www.google.com.hk";
        
            
    }




    //以面向物件的程式設計方式,給ddl_nav新增一個子項
    protected void Button3_Click(object sender, EventArgs e)
    {
        ListItem obj_li;
        obj_li = new ListItem();  //例項化obj_li,然後才可以對其進行操作


        obj_li.Text = "新浪";
        obj_li.Value = "http://www.sina.com.cn";


        //這句的形式非常重要:給某個物件 新增一個子物件
        ddl_nav.Items.Add(obj_li);






    }
}
瀏覽器中: