- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在 FormView 的 EditItemTemplate 中遇到问题。
当我在 InsertItemTemplate 中使用这样的代码时,一切正常:
<asp:DropDownList ID="Lic_PosiadaczLicencjiIDDropDownList" runat="server"
SelectedValue='<%# Bind("Lic_PosiadaczLicencjiID") %>' />
<asp:CascadingDropDown ID="CascadingDropDown1" runat="server"
TargetControlID="Lic_PosiadaczLicencjiIDDropDownList" Category="Knt_Kod"
ServicePath="~/ManagerLicencjiService.asmx" ServiceMethod="GetKontrahenci">
</asp:CascadingDropDown>
但是当我在 EditItemTemplate 中使用完全相同的代码时,我得到一个错误,指出 SelectedValue 是错误的,因为它不存在于元素列表中。我认为问题在于 DropDownList 在 由服务填充之前检查值。当我运行调试器时,错误发生在服务方法中的断点之前。
如何解决这个问题?
最佳答案
<rant>
我发现 CCD 非常笨重并且充满了记录不完整的解决方法 </rant>
但这里是你如何做一些简单的事情,比如在填充 ddl 时选择一个值。请注意,所选值未在 DDL 上设置,而是被传递到完成选择的 Web 服务。
<asp:ScriptManager ID="sm1" runat="server"></asp:ScriptManager>
<asp:FormView ID="fv1" runat="server" DataSourceID="yourDataSource">
<EditItemTemplate>
<asp:DropDownList ID="Lic_PosiadaczLicencjiIDDropDownList" runat="server" />
<asp:CascadingDropDown ID="CascadingDropDown1" runat="server"
TargetControlID="Lic_PosiadaczLicencjiIDDropDownList" Category="Knt_Kod"
ServicePath="~/ManagerLicencjiService.asmx" ServiceMethod="GetKontrahenci"
UseContextKey="true" ContextKey='<%# Bind("Lic_PosiadaczLicencjiID") %>'>
</asp:CascadingDropDown>
</EditItemTemplate>
</asp:FormView>
<asp:sqldatasource id="yourDataSource"
selectcommand="select Lic_PosiadaczLicencjiID FROM yourdatabase"
UpdateCommand="Update yourdatabase set Lic_PosiadaczLicencjiID = @newvalue WHERE Lic_PosiadaczLicencjiID = @Lic_PosiadaczLicencjiID"
connectionstring="<%$ ConnectionStrings:yourConnectionString %>"
runat="server"
onupdating="yourDataSource_Updating">
<UpdateParameters>
<asp:Parameter Name="newvalue" DbType="String" />
</UpdateParameters>
</asp:sqldatasource>
代码隐藏:
protected void yourDataSource_Updating(object sender, SqlDataSourceCommandEventArgs e)
{
e.Command.Parameters["@newvalue"].Value = ((DropDownList)fv1.FindControl("Lic_PosiadaczLicencjiIDDropDownList")).SelectedValue;
}
并且在您从中获取数据的网络服务中,您需要将上下文键添加到签名中完全如图所示,因为它区分大小写。然后检查所选值的返回值并设置 selected = true。如果您想要选定的值而不是选定的文本,请检查 x.value 而不是 x.name。
[WebMethod]
public CascadingDropDownNameValue[] GetKontrahenci(string knownCategoryValues, string category, string contextKey)
{
CascadingDropDownNameValue[] results = getdata();
CascadingDropDownNameValue selectedVal = (from x in results where x.name == contextKey select x).FirstOrDefault();
if (selectedVal != null)
selectedVal.isDefaultValue = true;
return results;
}
希望这对您有所帮助!
关于c# - EditItemTemplate 中 AJAX CascadingDropDown 和 DropDownList SelectedValue 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3830626/
我正在研究 Kendo UI,任何人都可以提供如何根据级联下拉列表选择值更新 Kendo 网格数据源的解决方案。在 Kendo 演示中,我找到了级联下拉列表示例。 要求: 我有 3 个下拉列表,与 3
我必须动态添加许多 AJAX CascadingDropDown 控件集(具有不同的数据)。数据将从数据库中读取。可以this方法用于动态创建?有一个可以动态添加的 Web 用户控件会更好吗?我不清楚
问题:如何在回发后同时维护内容(来自查询)和两个下拉列表的选定值? 源代码:从这个link下载我的源代码(链接现在有效)。只需添加对 AjaxControlToolkit 的引用 用户操作:从每个下拉
您好,我在使用 CascadingDropDown 的选定值属性时遇到问题。 我有 3 个 asp 下拉控件,每个控件都带有 ajax CascadingDropDown。 我将数据绑定(bind)到
我想知道是否可以在 Ajax 工具包 CascadingDropDon 加载时创建 JavaScript/jQuery 事件。 场景: 我在第一个下拉菜单中选择项目 -> 第二个下拉菜单加载了 Aja
我想通过 javascript (jQuery) 在客户端复制级联下拉列表。 您可以在第一个框中看到要复制的级联下拉列表。它们将通过 AJAX 控件工具包的 CascadingDropDown 控件在
我刚刚从 AJAX 工具包中获得了一个 CascadingDropDown,它与 SelectedIndexChanged 一起使用以重定向到一个传递选定值的查询字符串的页面。我很开心! 但是,我只是
在代码隐藏中我可以这样做来选择一些东西: // Select item in first DropDownList myCascadingDropDown_1.SelectedValue = item
标记 Country Code Web 服务 (~/CountryData.asmx) [WebService(Namespace = "http://tempuri.org/"
如果是怎么办? 您是自己使用 jQuery 还是使用 Microsoft AJAX 工具包? 您是否创建了网络服务或调用了操作? 编辑:请注意,这个问题是在 Microsoft 宣布他们将把 jQue
我可以使用 jQuery 更改 CascadingDropDown 的值,但是触发导致目标控件的子下拉列表填充数据的事件永远不会发生: $("#").change(function() { var
我在 FormView 的 EditItemTemplate 中遇到问题。 当我在 InsertItemTemplate 中使用这样的代码时,一切正常: ' /> 但是当我在 EditItemT
我是一名优秀的程序员,十分优秀!