2014-11-25 40 views
0

我已經DROPDOWNLIST這樣的:如何鏈接下拉列表值與查詢字符串

<asp:DropDownList ID="DropDownList1" runat="server" 
    Height="20px" Width="1650px" AutoPostBack="True"> 
    <asp:ListItem>spy</asp:ListItem> 
    <asp:ListItem>uk</asp:ListItem> 
    <asp:ListItem>it</asp:ListItem> 
    <asp:ListItem>us</asp:ListItem> 
    <asp:ListItem>fr</asp:ListItem> 
    <asp:ListItem>tr</asp:ListItem> 
    <asp:ListItem>jp</asp:ListItem> 
</asp:DropDownList> 

而且有數據CSV文件(如間諜atma.csv)。 datalist顯示一些數據。

這裏是代碼方面:

protected void Page_Load(object sender, EventArgs e) 
{ 
    var csv2 = DropDownList1.SelectedValue + "-atma" + ".csv"; 
    SqlDataSource2.SelectCommand = String.Format("SELECT * FROM [{0}]", csv2); 
    DataList1.DataBind(); 

    } 

我需要做的查詢字符串這樣的:

atma.aspx?=spy 
atma.aspx?=uk 
... 

和有約束力的下拉列表中選擇值。當我點擊atma.aspx?= spy時,dropdownlist默認點擊值必須是間諜。

我該怎麼做?

+1

如果我理解你正確 - 只需在你的下拉列表中設置選定的值和查詢字符串的值(可能需要一些字符串比較)。另外 - 你應該考慮修復你的SQL注入漏洞。它可以攻擊你建立你的sql命令的方式。 – 2014-11-25 07:29:17

回答

1

所有下拉首先應該是這樣的:

<asp:DropDownList ID="DropDownList1" runat="server" 
    Height="20px" Width="1650px" AutoPostBack="True"> 
    <asp:ListItem Text="spy" Value="spy"></asp:ListItem> 
    <asp:ListItem Text="uk" Value="uk"></asp:ListItem> 
    <asp:ListItem Text="it" Value="it"></asp:ListItem> 
    <asp:ListItem Text="us" Value="us"></asp:ListItem> 
    <asp:ListItem Text="fr" Value="fr"></asp:ListItem> 
    <asp:ListItem Text="tr" Value="tr"></asp:ListItem> 
    <asp:ListItem Text="jp" Value="jp"></asp:ListItem> 
</asp:DropDownList> 

,你可以得到查詢字符串值和設定選擇這種方式:

if(!String.IsNullOrWhiteSpace(Request.QueryString["NameYouHaveSet"])) 
    DropDownList1.SelectedValue = Request.QueryString["NameYouHaveSet"]; 

或使用指數,因爲它是你可以第一個索引寫:

NameValueCollection n = Request.QueryString; 
if(!String.IsNullOrWhiteSpace(n.Get(0))) 
     DropDownList1.SelectesValue = n.Get(0); 

this example on this article

+0

感謝它的工作。但我認爲這是選定的價值。再次感謝你。 – phe 2014-11-25 08:36:49

+1

歡迎您,是的,它是''SelectedValue''這是拼寫錯誤 – 2014-11-25 09:06:20