gpt4 book ai didi

asp.net - Formview Dropdown 2 依赖于 Dropdown 1

转载 作者:行者123 更新时间:2023-12-01 03:02:09 29 4
gpt4 key购买 nike

我有一个表单 View ,在编辑模板中我有两个下拉菜单。
下拉 1 明确设置了允许值的列表。它也设置为自动回发。
下拉 2 是数据绑定(bind)到 objectdatasource,这个 objectdatasource 使用第一个下拉作为它的参数之一。 (想法是下拉 1 限制了下拉 2 中显示的内容)

在项目的编辑模板的第一个 View 中,它工作正常。但是,如果下拉 1 选择了不同的项目,它会回发并生成错误

Databinding methods such as Eval(), XPath(), and Bind() can only be used in the context of a databound control.



这是下拉列表#2:
<asp:DropDownList ID="ProjectList" runat="server" SelectedValue='<%# Bind("ConnectToProject_ID","{0:D}") %>' DataSourceID="MasterProjectsDataSource2" DataTextField="Name" DataValueField="ID" AppendDataBoundItems="true">
<asp:ListItem Value="0" Text="{No Master Project}" Selected="True" />
</asp:DropDownList>

这是 MasterProjectDataSource2:
<asp:ObjectDataSource ID="MasterProjectsDataSource2" runat="server" 
SelectMethod="GetMasterProjectList" TypeName="WebWorxData.Project" >
<SelectParameters>
<asp:ControlParameter ControlID="RPMTypeList" Name="RPMType_ID"
PropertyName="SelectedValue" Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>

任何有关如何使其发挥作用的帮助都将不胜感激。

最佳答案

我在 FormView 中绑定(bind)下拉列表时遇到了类似的问题。我通过在表单 View 的“OnDataBound”中手动设置选定的值来解决它。

(不知道你从哪里得到 ConnectToProject_ID)

FormView fv = (FormView)sender;
DropDownList ddl = (DropDownList)fv.FindControl("ProjectList");
ddl.SelectedValue = String.Format("{0:D}", ConnectToProject_ID);

当您准备好保存时,使用“OnItemInserting”事件:
FormView fv = (FormView)sender;
DropDownList ddl = (DropDownList)fv.FindControl("ProjectList");
e.Values["ConnectToProject_ID"] = ddl.SelectedValue;

或“OnItemUpdating”

当您准备好保存时,使用“OnItemInserting”事件:
FormView fv = (FormView)sender;
DropDownList ddl = (DropDownList)fv.FindControl("ProjectList");
e.NewValues["ConnectToProject_ID"] = ddl.SelectedValue;

关于asp.net - Formview Dropdown 2 依赖于 Dropdown 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22503/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com