如何将TextBox值传递给DynamicPopulateExtender查询?

时间:2011-04-07 23:00:36

标签: c# javascript asp.net

您好我在Textbox2的值更改时尝试在DropDownList2上执行DynamicPopulate,如何将值传递给TextBox2到DynamicPopulate的sql查询。

<asp:DropDownList ID="DropDownList2" runat="server" 
          DataSourceID="SqlDataSource1" 
          onselectedindexchanged="DropDownList2_SelectedIndexChanged">
      </asp:DropDownList>
      <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
          ConnectionString="<%$ ConnectionStrings:MYDB %>" 
          SelectCommand="SELECT Time FROM Tour WHERE (Date = TextBox2 )">
      </asp:SqlDataSource>
      <asp:DynamicPopulateExtender ID="DropDownList2_DynamicPopulateExtender" 
          runat="server" Enabled="True" PopulateTriggerControlID="" 
          TargetControlID="DropDownList2">
      </asp:DynamicPopulateExtender>

2 个答案:

答案 0 :(得分:1)

将此javascript代码添加到您的页面

    <script type="text/javascript">
    function UpdateControl(value) {
    var behavior = $find('dp1');
    if (behavior)   {
         behavior.populate(value);   
        }
    }
    </script>

并使用此修改后的代码:

  <asp:DynamicPopulateExtender ID="DropDownList2_DynamicPopulateExtender" 
      runat="server" Enabled="True" PopulateTriggerControlID="" 
      TargetControlID="DropDownList2" BehaviorID="dp1">
  </asp:DynamicPopulateExtender>

在vb或C#页面的代码后面,请确保添加属性

    DropDownList2.Attributes.Add("onChange", "UpdateControl3(this.value);")

这将触发DynamicPopulateExtender的WebMethod,并将contextKey设置为下拉列表的值。

希望这会有所帮助。

答案 1 :(得分:0)

我想你可能会对DynamicPopulateExtender的用途感到困惑。当您更改页面上控件的值时,它旨在将HTML从调用返回到Web服务。它适用于直接HTML,您不使用它来更新页面上的其他服务器控件。我认为您要找的是CascadingDropDown,有关详细信息,请参阅http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/CascadingDropDown/CascadingDropDown.aspx