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

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

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尝试是首先尝试使用this post中指示的telerik的库

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>

使用C#执行JavaScript页面 - javascript

我正在尝试使用C#抓取一个网站。在此过程中的某个时候,网站返回了我需要执行的JavaScript页面,以便它将生成一些参数,然后使用所生成的参数作为查询变量来发布请求。这是JavaScript文件https://jsfiddle.net/7aw5vr59/浏览器生成的结果文件如下所示:<imimxxxyyy id="ActiveX"…

将Web用户控件添加到页面时,asp按钮onclick不会触发 - javascript

我正在使用使用Visual Studio模板创建的Web表单应用程序。模板具有一个内容占位符,该占位符被访问的任何页面的内容替换。有问题的页面有几个服务器控件,例如文本框,标签和按钮。当我单击我的更新按钮时,它可以正常工作,这些值会回传并更新数据库。我想在所有子页面上创建通用的登录提示。我的导航栏(位于我的母版页中)具有引导程序设置。我在导航栏中添加了一个下…

Telerik单选按钮所需的字段验证器 - javascript

如何设置Telerik单选按钮所需的字段验证器?我想在按钮单击“ BtnSave”上设置必填字段验证器吗?请帮忙!<telerik:RadButton ID="radio_male" runat="server" ToggleType="Radio" AutoPostBack="fa…

选择后显示输入元素 - javascript

我有一个表格,其中取决于用户的选择,输入元素是否可见。实际上,用户正在以另一种形式设置已定义的合作伙伴类型,并且如果选中该元素,则允许在该类型的合作伙伴上可见的元素类型1将显示以下元素:<input type="text" id="partner" name="partner" class=&…

在PHP文件中调用javascript函数并在加载HTML文件之后? - javascript

我需要在我的php中调用js函数,但无法正常工作。有人可以告诉我我在做什么错吗?我该如何轻松地做到这一点?谢谢!我有三个文件:  mail.php负责发送$ _POST的内容(工作正常)。我调用我的javascript函数来切换模式,具体取决于邮件是否已发送。 <? ... $response = $sendgrid->send($email);…