Javascript无法在gridview中获取输入元素

Javascript无法在gridview中获取输入元素,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,我创建了一个asp.net页面,允许站点管理员选择一个用户作为“系统主席”。为此,我在gridview中列出了用户,并有一列单选按钮来显示当前主席是谁,或者更改指定的主席。我使用html输入类型=单选按钮。当页面加载时,如果“系统”分配了“椅子”,我需要检查相关的单选按钮。我正试图用javascript或jquery实现这一点。我尝试过的脚本有: jquerytry 1: <script type="text/javascript"> function initRadioBut

我创建了一个asp.net页面,允许站点管理员选择一个用户作为“系统主席”。为此,我在gridview中列出了用户,并有一列单选按钮来显示当前主席是谁,或者更改指定的主席。我使用html输入类型=单选按钮。当页面加载时,如果“系统”分配了“椅子”,我需要检查相关的单选按钮。我正试图用javascript或jquery实现这一点。我尝试过的脚本有:

jquerytry 1:

<script type="text/javascript">
   function initRadioButtons() {
      $("#user268").attr('checked', 'checked');
   }
</script>
jquerytry 2: 函数初始化单选按钮{ $user268。属性“已检查”,为真; }

javascript rb设置为空:

<script type="text/javascript">
      function initRadioButtons() {
         var rb = document.getElementById(user268");
      }
</script>
以下是my.aspx文件中的gridview:

<Custom:GridView ID="gvUsers" DataSourceID="dsUsers" CellPadding="3" AutoGenerateColumns="false"
     ArrowUpImageUrl="~/images/SortUpArrow.jpg" ArrowDownImageUrl="~/images/SortDownArrow.jpg"
     Width="100%" ShowWhenEmpty="true" EmptyDataText="No Users Returned" DataKeyNames="userID"
    AllowSorting="true" runat="server">
       <Columns>
          <asp:TemplateField HeaderText="AST Chair" ItemStyle-HorizontalAlign="Center" ItemStyle-VerticalAlign="Middle"
           SortExpression="IsChair">
             <ItemTemplate>
                <input type="radio" id='user<%# Eval("userID") %>' name="isChair" value='<%# Eval("userID") %>' onclick="radioButtonClicked(this);" />
                </ItemTemplate>
          </asp:TemplateField>
          <asp:BoundField HeaderText="Username" DataField="userName" sortExpression="userName" ItemStyle-HorizontalAlign="Left" />
          <asp:BoundField HeaderText="First Name" DataField="FirstName" SortExpression="FirstName" ItemStyle-HorizontalAlign="Left" />
          <asp:BoundField HeaderText="Last Name" DataField="LastName" SortExpression="LastName" ItemStyle-HorizontalAlign="Left" />
    </Columns>
</Custom:GridView>

我做错了什么?

我有两个建议。首先是JavaScript:

<script type="text/javascript">
   $(document).ready(function(){
       initRadioButtons();
   });

   function initRadioButtons() {
      $(".user268").attr('checked', 'checked'); // notice i changed to class for next one
   }
</script>

现在我们已经做到了这一点,我认为下一个问题是您在GridView中使用了一个标记,因此它不会作为绑定的一部分发布回来。通常,您可以使用来执行此操作。

运行应用程序,然后检查元素。元素的Id是您所期望的吗?Asp.Net web窗体将自动向其中添加父容器的Id。您的第二个代码片段也应该在user268前面有一个相当大的提示。您的第一个建议将获得胜利。我在代码隐藏中从Page_Load函数调用initRadioButtons函数,因此javascript在页面完全填充之前运行。将调用移动到$document.readyfunction会产生很大的不同。但是,它允许我在gridview-go图中使用html元素上的数据绑定。啊,好吧,很高兴它起作用了,这只是对输入标记的猜测,我在单击post后意识到,您只是eval,因此无论如何都不需要将值发回。
id='user<%# Eval("userID") %>'
<input runat="server" type="radio" class='<%# string.Format("user{0}", Eval("userID")) %>' name="isChair" value='<%# Eval("userID") %>' onclick="radioButtonClicked(this);" />