gpt4 book ai didi

javascript - 检查 RadListView ItemTemplate 中的 RadButton 复选框 - 客户端

转载 作者:行者123 更新时间:2023-12-03 10:51:06 28 4
gpt4 key购买 nike

我只是尝试设置客户端 RadListView 项目模板内的 telerik RadButton 的复选框(使用 javascript/jquery)。

RadListView:

<telerik:RadListView runat="server" 
ID="parameterList"
OnNeedDataSource="parameterList_NeedDataSource">
<ItemTemplate>
<tr>
<td>
<telerik:RadButton ToggleType="CheckBox"
ButtonType="LinkButton"
runat="server"
ID="chkParameterType"
AutoPostBack="False"
Text='<%# Eval("Description") %>
CssClass='<%# Eval("ParameterName") + "_button" %>'>
<ToggleStates>
<telerik:RadButtonToggleState PrimaryIconCssClass="rbToggleCheckboxChecked"/>
<telerik:RadButtonToggleState PrimaryIconCssClass="rbToggleCheckbox" />
</ToggleStates>
</telerik:RadButton>
</td>
</tr>
</ItemTemplate>
</telerik:RadListView>

我的 jquery 尝试首先尝试使用 telerik 的库,如 this post 中所示。

var listView = $find('<%= parameterList.ClientID %>');
var txbClientObject = $telerik.findControl(listView.get_element().parentNode,
"chkParameterType").get_value()
var current = txbClientObject.get_value();

但是 txbClientObject 返回为未识别状态,因此 currentcannot read property of null 而中断

我还尝试在直接 jquery 中按类名查找按钮。我担心这一点,因为我相信不同浏览器中的渲染可能会有所不同。

var button = $("." + name + "_button > input");  //"name" is parameterName
button.prop("checked", true);

这不会出错,并且通过它进行调试,它找到了按钮(或跨度),但也无法选中该框。

关于我做错了什么有什么想法吗?

最佳答案

您运行此代码的事件是什么?它至少必须是 Sys.Application.Load 事件,否则控件实例可能仍然未定义。

此外,您在 Text 属性处还有一个额外的 %>,这会破坏编译。

然后,findControl() 将为您提供控件实例,您不需要在那里调用 get_value() 。

您应该考虑的是您想要哪个按钮,因为 ListView 可以有多个项目,而这将为您提供第一个。

所以,这是对我有用的东西:

<telerik:RadListView runat="server" 
ID="parameterList"
OnNeedDataSource="parameterList_NeedDataSource">
<ItemTemplate>
<tr>
<td>
<telerik:RadButton ToggleType="CheckBox"
ButtonType="LinkButton"
runat="server"
ID="chkParameterType"
AutoPostBack="False"
Text='<%# Eval("Description") %>'
CssClass='<%# Eval("ParameterName") + "_button" %>'>
<ToggleStates>
<telerik:RadButtonToggleState PrimaryIconCssClass="rbToggleCheckboxChecked"/>
<telerik:RadButtonToggleState PrimaryIconCssClass="rbToggleCheckbox" />
</ToggleStates>
</telerik:RadButton>
</td>
</tr>
</ItemTemplate>
</telerik:RadListView>
<asp:Button ID="Button1" Text="get first button" OnClientClick="getFirstButton(); return false;" runat="server" />
<script>
function getFirstButton() {
var listView = $find('<%= parameterList.ClientID %>');
var txbClientObject = $telerik.findControl(listView.get_element().parentNode,
"chkParameterType");
var current = txbClientObject.get_value();
alert(txbClientObject.get_checked());
alert(txbClientObject.get_text());
txbClientObject.set_checked(true);
}
</script>

这是一个更完整的示例,它将向您展示如何使用 CSS 类来获取任何所需的元素,并且还将通过指定 LayoutTemplate 提供有效的 HTML:

<telerik:RadListView runat="server"
ID="parameterList"
OnNeedDataSource="parameterList_NeedDataSource"
ItemPlaceholderID="theItemPlaceHolder">
<LayoutTemplate>
<table>
<asp:PlaceHolder ID="theItemPlaceHolder" runat="server" />
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td class="buttonCell">
<telerik:RadButton ToggleType="CheckBox"
ButtonType="LinkButton"
runat="server"
ID="chkParameterType"
AutoPostBack="False"
Text='<%# Eval("Description") %>'
CssClass='<%# Eval("ParameterName") + "_button" %>'>
<ToggleStates>
<telerik:RadButtonToggleState PrimaryIconCssClass="rbToggleCheckboxChecked"/>
<telerik:RadButtonToggleState PrimaryIconCssClass="rbToggleCheckbox" />
</ToggleStates>
</telerik:RadButton>
</td>
</tr>
</ItemTemplate>
</telerik:RadListView>
<asp:Button ID="Button1" Text="get third button" OnClientClick="getThirdButton();return false;" runat="server" />
<script>
function getThirdButton() {
var listView = $find('<%= parameterList.ClientID %>');
var buttonCells = $telerik.$(".buttonCell", listView.get_element().parentNode);
var txbClientObject = $telerik.findControl(buttonCells[2],
"chkParameterType");
var current = txbClientObject.get_value();
alert(txbClientObject.get_checked());
alert(txbClientObject.get_text());
txbClientObject.set_checked(true);
}
</script>

关于javascript - 检查 RadListView ItemTemplate 中的 RadButton 复选框 - 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28416077/

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