gpt4 book ai didi

javascript - 如何使用 jquery 或 javascript 从 telerik radcombobox 中获取选定的值? val() 不工作

转载 作者:行者123 更新时间:2023-11-29 22:25:23 24 4
gpt4 key购买 nike

我有一个 listview,它有一个嵌套的 listview,它在 itemtemplate 中包含 radcomboboxes。因此,这些 ID(据我所知)对我来说毫无用处。

例如,如果我有 30 个项目,那么每个项目都将生成一个新的组合框,因此名称将由 asp 生成。我需要的是能够从用户正在使用的任何组合框中获取选定的值。我目前正在使用 jQuery 和一些荒谬的 parent().parent().children()输入废话以找到与提交按钮相关的正确组合框。

当提交按钮被点击时,我需要它来找到它各自组合框的选定值,以便我可以将其发送到提交后处理程序。问题是 .val() jQuery 方法不起作用。当我将它与类似的东西一起使用时:

$(this).parent().parent().children().children(".statusCbo").val();

我最终得到的是文本值,而不是选定的值。我三重检查以确保我在 aspx 文件中正确绑定(bind)了字段;

DataTextField = '<%#Eval("name") %>' DataValueField = '<%#Eval("id") %>'

但正如我所说,我最终得到的是所选项目的 DataTextField 值。我能得到的最好解释是它与控件请求内容的方式(通过 ajax)有关。

那么无论如何,任何人都可以提供一些关于如何从组合框中准确获取所选值的建议吗?

更新:我能够通过不同的方式获得对该对象的引用:

$(".submitTag").click(
function () {
var topLevel = $(this).closest(".CommentTopLevel");
var status = topLevel.find(".StatusTag").get_value();

//stub to test value
alert(status);
return false;
});

从这里开始,如果使用 status.val(),它将给我文本而不是值(与以前相同的问题)。文档暗示我应该使用 status.get_value();但这正在爆炸,说对象不支持该方法。有任何想法吗?

更新:没关系,我发现返回的是一个 jquery 对象,因此不包括该方法。继续挖掘。

解决方案:要使用传统方法,我只需要执行一个额外的步骤。我不知道它花了这么长时间才跟我一起点击:

$(".submitTag").click(
function(){
var topLevel = $(this).closest(".CommentTopLevelTag"); //gets the parent container
var comboBoxID = topLevel.find(".StatusTag").attr("ID"); //gets the clientID of the jQuery object
var comboBoxRef = $find(comboBoxID); //finds the control by id and brings back a non-jQuery object (useable)
var comboBoxSelectedValue = comboBoxRef.get_value(); //uses the Telerik method to get the selected value
});

最佳答案

自从我处理 Telerik 控件以来已经有一段时间了,但是您正在做的是绕过 Telerik 为您制作的 API,这让我觉得非常糟糕。 Telerik Controls 的下一版本很容易破坏您的代码。

看,从 ListView 传递客户端 ID 应该不难。我会解决几种方法,但我现在会让你自己想办法。一旦您拥有控件的 ClientID,请按照 telerik 网站上的示例进行操作:

http://demos.telerik.com/aspnet-ajax/combobox/examples/programming/addremovedisableitemsclientside/defaultcs.aspx

一旦你有了那个 id 就可以做一些

var combo = $find(someVarReferencingTheId); 

现在您在客户端表单中获得了对组合框的引用。现在从这里找到一些可以得到你想要的东西的函数:

http://www.telerik.com/help/aspnet-ajax/combobox-client-side-radcombobox.html

...

利润!

编辑:实际上什至不需要指向 demos.telerik.com 的第一个链接,我只是展示了它,因为那是我用来获取那行代码的内容(我永远不记得它是否是 $get$find 我需要使用,除非我当时正在做很多 Telerik 客户端的事情。)。

编辑 2:$get$find 是 ASP.NET 结构,不是 Telerik 的结构。

关于javascript - 如何使用 jquery 或 javascript 从 telerik radcombobox 中获取选定的值? val() 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9796255/

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