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 – 在localhost中将IIS设置为Web开发服务器
- ASP.NET会话已过期或无法找到 – 因为Session.SessionID发生
- asp.net-mvc – 通过删除空格打破我的calc语句的MVC捆绑?
- ASP.NET(C#)应用程序配置文件app.config/web.config的增、删
- asp.net-mvc-2 – 是否可以在EditorFor模板控件中使用Displ
- asp.net – Signalr中哪个更好的WebSocket或Long Polling?
- asp.net-mvc – View中的意外NullReferenceException
- ASP.NET Core 2.0 Razor vs Angular/React/etc.
- asp.net-mvc – 如何为mvc应用程序中的所有控制器启用ssl
- asp.net – ImageButton不会在IE10上发回帖子
- 在asp.net之后的回发动作刷新页面
- asp.net-mvc-4 – 如何开发一个ASP.NET Web API接
- asp.net-mvc-4 – 提交相同的部分视图多次调用数
- 如何使用ASP.NET更改HTML页面元素的CSS类?
- asp.net-mvc – AOP vs MVC FilterAttributes vs
- ASP.NET linkbutton两次提高onBeforeUnload事件
- asp.net-mvc – ASP.Net 5中缺少FormCollections
- asp.net-mvc – MVC3区域中的相对内容路径
- 学习LINQ的资源?
- 当将单字节添加到响应中时,ASP.NET WebAPI输出的
