vs2008如何实现asp.net中,两个dropdownlist,当第一个改变时,第二个动态绑定
vs2008直接在aspx前端页面绑定了第一个dropdownlist的数据,生成代码如下<asp:DropDownListID="ddlGrade"runat="ser...
vs2008直接在aspx前端页面绑定了第一个dropdownlist的数据,生成代码如下
<asp:DropDownList ID="ddlGrade" runat="server" AutoPostBack="True"
DataSourceID="SqlDataSource1" DataTextField="GradeName"
DataValueField="GradeID"
onselectedindexchanged="ddlGrade_SelectedIndexChanged">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:RDFZ_MedicConnectionString %>"
SelectCommand="SELECT [GradeID], [GradeName] FROM [T_Grade] ORDER BY [ID]">
</asp:SqlDataSource>
第二个数据的sql语句需要将第一个dropdownlist的值作为变量,所以使用自动生成数据绑定的方式无法实现,采用固定值后生成代码如下
<asp:DropDownList ID="ddlClass" runat="server" AutoPostBack="True"
DataSourceID="SqlDataSource2" DataTextField="ClassName"
DataValueField="ClassID">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:RDFZ_MedicConnectionString2 %>"
SelectCommand="SELECT TOP (SELECT ClassCnt FROM T_Grade WHERE (GradeID = 'G2011' ClassID, ClassName FROM T_Class ORDER BY ID">
</asp:SqlDataSource>
即怎么实现把上面第二个dropdownlist里面sql语句中的'G2011'替换为this.ddlGrade.SelectedValue
最后那个sql语句粘贴的时候写错了,应该是SELECT TOP (SELECT ClassCnt FROM T_Grade WHERE GradeID = 'G2011') ClassID, ClassName FROM T_Class ORDER BY ID 展开
<asp:DropDownList ID="ddlGrade" runat="server" AutoPostBack="True"
DataSourceID="SqlDataSource1" DataTextField="GradeName"
DataValueField="GradeID"
onselectedindexchanged="ddlGrade_SelectedIndexChanged">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:RDFZ_MedicConnectionString %>"
SelectCommand="SELECT [GradeID], [GradeName] FROM [T_Grade] ORDER BY [ID]">
</asp:SqlDataSource>
第二个数据的sql语句需要将第一个dropdownlist的值作为变量,所以使用自动生成数据绑定的方式无法实现,采用固定值后生成代码如下
<asp:DropDownList ID="ddlClass" runat="server" AutoPostBack="True"
DataSourceID="SqlDataSource2" DataTextField="ClassName"
DataValueField="ClassID">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:RDFZ_MedicConnectionString2 %>"
SelectCommand="SELECT TOP (SELECT ClassCnt FROM T_Grade WHERE (GradeID = 'G2011' ClassID, ClassName FROM T_Class ORDER BY ID">
</asp:SqlDataSource>
即怎么实现把上面第二个dropdownlist里面sql语句中的'G2011'替换为this.ddlGrade.SelectedValue
最后那个sql语句粘贴的时候写错了,应该是SELECT TOP (SELECT ClassCnt FROM T_Grade WHERE GradeID = 'G2011') ClassID, ClassName FROM T_Class ORDER BY ID 展开
4个回答
展开全部
当第一个dropdownlist触发选择事件时,在后台更改sqldatasource2的SelectCommand字符串即可,此时你可以把ddlGrade.SelectedValue拼接到"SELECT TOP (SELECT ClassCnt FROM T_Grade WHERE GradeID = '"+ddlGrade.SelectedValue+"') ClassID, ClassName FROM T_Class ORDER BY ID",然后刷新数据源,重新绑定数据即可。
展开全部
不理解你为什么要这么写。 还是后台写代码把。这样写的话真不如用Ajax 。还用什么服务器控件啊,直接html控件+ ja + WebService 得了。
追问
不是我刻意这么写,是想尝试用vs2008的数据绑定工具,最后还是用后台代码的方式搞定了
追答
呵呵。 估计vs的数据绑定工具就是微软没事弄着玩的。 从来没见人这么用过..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
dropdownlist 有一个出发时间 在选中后会触发,当触发后把这个查询出的数值放到第二里面就好了
追问
那样的话我需要手动写第二个ddl的绑定函数,然后在第一个ddl的selectedindexchanged事件中调用第二个ddl的绑定函数,是这样的吗?因为我直接使用vs2008的窗口方式绑定的数据,因此就没有在后端生成.cs代码,而是直接生成在了.aspx中
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
很久没有用服务器端控件了, 尤其是SqlDataSource这种持久化的东西~全忘了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询