asp.net – 下拉列表中的重复项目!
发布时间:2020-12-16 06:54:23 所属栏目:asp.Net 来源:网络整理
导读:好的,我真的希望你们可以帮我这个,我花了两天时间试图搞清楚,我想我要把电脑扔到窗外,所以我想我不妨在这里问一下: 我正在设计一个带有两个下拉列表的网页,一个用于制作汽车,另一个用于模型,两者都绑定到具有单独SQLDataSource的数据库,并使用不同的语句.我
好的,我真的希望你们可以帮我这个,我花了两天时间试图搞清楚,我想我要把电脑扔到窗外,所以我想我不妨在这里问一下:
我正在设计一个带有两个下拉列表的网页,一个用于制作汽车,另一个用于模型,两者都绑定到具有单独SQLDataSource的数据库,并使用不同的语句.我通过设置appendDataBoundItems = true并添加名为all的项目,在两者的顶部添加“All”.然后,当我用一个查询字符串填充Make时,所有模型项都会被添加两次(但只有数据绑定项). 这是我的代码: <asp:DropDownList ID="DropDownMake" runat="server" DataSourceID="SqlMakes" DataTextField="Make" DataValueField="Make" AppendDataBoundItems="True" EnableViewState="False" AutoPostBack="True"> <asp:ListItem Selected="True" Value="All">All</asp:ListItem> </asp:DropDownList> <asp:DropDownList ID="DropDownModel" runat="server" AppendDataBoundItems="True" AutoPostBack="True" DataSourceID="SqlModels" DataTextField="Model" DataValueField="Model" EnableViewState="False"> <asp:ListItem>All</asp:ListItem> </asp:DropDownList> <asp:SqlDataSource ID="SqlMakes" runat="server" ConnectionString="<%$ConnectionStrings:ConnectionString %>" SelectCommand="SELECT DISTINCT [Make] FROM [Parts]"> </asp:SqlDataSource> <asp:SqlDataSource ID="SqlModels" runat="server" ConnectionString="<%$ConnectionStrings:ConnectionString %>" SelectCommand="SELECT DISTINCT [Model] FROM [Parts] WHERE ([Make] = @Make)"> <SelectParameters> <asp:ControlParameter ControlID="DropDownMake" Name="Make" PropertyName="SelectedValue" /> </SelectParameters> </asp:SqlDataSource> ‘并在VB文件中: Protected Sub Page_Init(ByVal sender As Object,ByVal e As System.EventArgs) Handles Me.Init DropDownMake.SelectedValue = Request.QueryString("Make") DropDownModel.SelectedValue = Request.QueryString("Model") End Sub 如果我删除行“DropDownMake.SelectedValue = Request.QueryString(”Make“)”它不再产生重复.到底是怎么回事??我发誓我花了更多时间开发整个iphone应用程序,如果有人帮忙解决这个问题,我想我将不得不为你颁奖. 谢谢!! 解决方法
我认为您的数据绑定方法可能会被触发两次.您是否尝试设置appendDataBoundItems = false然后为OnDataBound事件附加事件处理程序并将事件处理程序中的顶部项目插入?
protected void yourDdlControl_DataBound(object sender,EventArgs e) { if (yourDdlControl.Items.Count > 0) { yourDdlControl.Items.Insert(0,"All"); yourDdlControl.Items[0].Value = ""; yourDdlControl.SelectedIndex = 0; } } } 好的,这是c#代码,但你应该能够翻译它:).此外,您可以根据查询参数的存在来设置DataBound中的选定值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- asp.net – Visual Studio 2010调试速度慢
- 在ASP.NET中开发SharePoint Web部件
- 本地化 – MVC 3中DataAnnotations的默认错误消息
- asp.net – asmx到WCF或Web API
- asp.net – 在Html.BeginForm之外提交按钮
- 在ASP.NET MVC中动态地从数据库生成CSS文件
- ASP.NET CheckBoxList DataBinding问题
- asp.net – 我想列出我的下拉列表中的所有国家/地
- asp.net-mvc-3 – MVC3强制验证隐藏字段
- asp.net-mvc – ASP.net身份在删除外部帐户后停止
热点阅读