2011-11-29 117 views
0

嗨,我知道这个问题已经讨论过了,但我仍然没有得到它的工作。在其他过滤器上过滤下拉列表

我需要的是通过几个下拉列表过滤gridview,主要想法是“继续”过滤gridview。我的意思是,当我从ddl1中选择值时,则根据ddl1中的选定值过滤ddl2。

也称为级联下拉列表中,但我不希望(不能)使用Ajax控件工具包...

到任何其他解决办法?也许方法 protected void DropDownList2_SelectedIndexChanged(...)可以做到这一点,但我不知道如何使用它。

请帮忙 在此先感谢。

+1

如果'ddl1'有'真autopostback''ddl2'可以很容易地根据''中ddl1_SelectedIndexChanged' ddl1'的'SelectedValue'用'code'建设。 – Bastardo

+0

是的,但我不知道需要的代码.. – Pepys

+0

佩皮斯我很抱歉,但这不是一个地方要求代码这是一个地方寻求帮助,当你写的代码有问题,你可以'解决。 – Bastardo

回答

2

看看下面。这只是给你一个想法...

DropDownList1_SelectedIndexChanged(...){ 
// get the ddl1 selected value 
// filter the datasource used by dropdownlist2 
// databind DropDownList2 
} 

DropDownList2_SelectedIndexChanged(...){ 
    // get the ddl1 selected value 
    // get the ddl2 selected value 
    // filter the datasource used by GridView(using the DropDownList selected values) 
    // databind GridView 
} 
+0

这是更喜欢它;) 我要试试这个,但后来 感谢花花公子 – Pepys

2

我会建议使用jquery来填充级联下拉列表。将此脚本添加到您的网页。

$(document).ready(function() { 

$( “#<%= ddlState.ClientID%>”)。变化(函数(){

var sourceddl = "<%= ddlState.ClientID %>"; 
var stateid = $("#<%= ddlState.ClientID %> option:selected").val(); 
var Stateid = { Stateid: stateid }; 

$.ajax({ 
       type: 'POST', 
       url: 'YourCodeBehind.aspx/GetCounties', 
       data: JSON.stringify(Stateid), 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (result) {      
          if (data.d) { 
          var options = [];      
          if (result.d) { 
          for (var i = 0; i < result.d.length; i++) { 
           options.push('<option value="', 
               result.d[i].countyID, '">', 
               result.d[i].countyName, '</option>'); 
          } 

          $("#<%= ddlCounty.ClientID %>").html(options.join('')); 
         }       
        } 
       }, 
       error: function() { 
        alert("Error! Try again..."); 
       } 
      }); 

     }); 

    }); 

这里是它是在相同的代码隐藏将WebMethod。

[WebMethod] 
public static County[] GetCounties(int Stateid) 
{ 
    County[] countiesArr = StatesCountyModel.GetCountyForState(Stateid).ToArray(); 
    return countiesArr;  
} 

如果您是新来的jquery,请通过http://Jquery.com了解如何使用它

希望能帮助到你。

普利文

+0

谢谢,但我真的不觉得自己现在的学习jQuery的:) 不是我喜欢的.. – Pepys

+0

没问题!你可以在这里使用我们的老朋友javascript。看到这个http://forums.asp.net/t/1413113.aspx – PraveenLearnsEveryday

+0

嘿嘿,这似乎很酷...但我真的不明白这一点。像数据库连接,列等等什么地方... 这是与Gridview的工作,因为这是主要想法 - 获取gridview fitered:? 对不起,这是愚蠢的问题,但它的Java脚本:) – Pepys