asp.net – 在模板化控件中实现级联DropDownList绑定
我的表单上有2个DropDownList控件,第二个控件使用第一个的SelectedValue作为其绑定参数之一.
DropDownList控件都在FormView.InsertItemTemplate中,其SelectedValue属性使用绑定表达式绑定到FormView的数据源. FormView第一次在插入模式下渲染,一切正常.问题是在第一个DropDownList的AutoPostBack之后,FormView没有(重新)绑定,但是由于第二个DropDownList上的ControlParameter已经改变,它会绑定(按预期),但是绑定表达式上发生异常.第二个DDL,我假设因为FormView没有绑定该传递:
这是标记: <InsertItemTemplate> . . . <tr class="GridViewRowB"> <td class="GridViewCell"> Offense Type </td> <td class="GridViewCell"> <asp:DropDownList ID="ddlOffenseType" runat="server" DataSourceID="dsOffenseType" AutoPostBack="true" DataValueField="OffenseTypeID" DataTextField="Description" SelectedValue='<%# Bind("OffenseTypeID") %>'> </asp:DropDownList> <asp:ObjectDataSource ID="dsOffenseType" runat="server" TypeName="OffenseType" SelectMethod="GetAll"> <SelectParameters> <asp:Parameter Name="ActiveOnly" DefaultValue="True" Type="Boolean" /> </SelectParameters> </asp:ObjectDataSource> </td> </tr> <tr class="GridViewRowA"> <td class="GridViewCell"> Attorney </td> <td class="GridViewCell"> <asp:DropDownList ID="ddlAttorney" runat="server" DataSourceID="dsAttorney" DataValueField="AttorneyID" DataTextField="AttorneyNameWithCount" SelectedValue='<%# Bind("AttorneyID") %>'> </asp:DropDownList> <asp:ObjectDataSource ID="dsAttorney" runat="server" TypeName="Attorney" SelectMethod="GetAttorneyWithCaseCount"> <SelectParameters> <asp:Parameter Name="ActiveOnly" DefaultValue="True" Type="Boolean" /> <asp:ControlParameter Name="OffenseTypeID" Type="Int32" ControlID="ddlOffenseType" PropertyName="SelectedValue" /> </SelectParameters> </asp:ObjectDataSource> </td> </tr> . . . </InsertItemTemplate> 我的问题是:使这项功能有效的最佳方法是什么?是否可以将两个DDL保留在模板中?我宁愿避免使用AJAX工具包或其他客户端解决方案. 解决方法
当我们在像像DetailsView / FormView这样的数据绑定控件中使用级联下拉列表时,这是一个问题,而且我已多次面对它.您必须从第二个下拉列表中删除绑定表达式SelectedValue =’<%#Bind(“AttorneyID”)%>‘,然后它将起作用.
其次,如果删除Binding表达式,则必须在FormView ItemInserting Event中手动传递值.例如 protected void frmAsset_ItemInserting(object sender,FormViewInsertEventArgs e) { eValues["AttorneyID"] = ((DropDownList)((FormView)sender).FindControl("ddlAttorny")).SelectedValue; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – 温莎城堡自动注入非公共财产
- asp.net-mvc – 如何与NopCommerce MVC合作
- 如何在ASP.NET中获取原始请求体?
- asp.net-core – 如何在.Net Core应用程序中读取web.config
- ASP.NET MVC如何连接到ASP.NET?
- asp.net-mvc – ASP.NET MVC 4邮政编码验证
- ASP.NET身份验证cookie仅在IE中消失,仅在特定位置消失
- asp.net-mvc – 在ServiceStack服务上进行身份验证后访问客
- asp.net中执行exe应用程序
- ASP.NET TextBox LostFocus事件
- asp.net – Web api界面在本地工作,但不在Azure上
- asp.net-mvc-2 – 为什么mvc Html.HiddenFor不渲
- asp.net-mvc – 为Html.TextBox设置值Html属性(M
- asp.net – 在VB.Net Web应用程序中使用SubSonic
- asp.net – 是果园还是Umbraco MVC?
- asp.net – 我的应用程序让我重定向到Account /
- asp.net – DbContext VS ObjectContext
- asp.net – 授权和验证对静态内容的访问(pdf)
- asp.net-mvc-3 – 使用Ninject 2.2全局动作过滤器
- asp.net-mvc-3 – MVC3客户端验证无法使用Ajax.B