您好我在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>
答案 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。