日期:2014-05-18  浏览次数:20431 次

repeater全选问题
我做了一个前台用repeater显示数据使用全选做删除
  前台显示的checkbox 控件需要到后台判断是否有权限删除,如果有页面显示checkbox
 后台方法输出
 return "<input type='checkbox' name='CkChecked' id='CkChecked' runat='server' value='" + wid + "'>";
前台调用
  
<td>
  <%# GetIsclaimStr(DataBinder.Eval(Container.DataItem, "Isclaim").ToString(), DataBinder.Eval(Container.DataItem, "WtEndtime").ToString())%>
  </td>

但是我点击删除的时候一直得不到checkbox控件对象

后台代码
  protected void Unnamed1_Click(object sender, EventArgs e)
  {
  foreach (RepeaterItem item in this.RptWtList.Items)
  {
  object cb= null;
  cb = item.FindControl("CkChecked");
  //if (chkItem == null)
  // continue;
  //if (chkItem.Checked)
  //{
  // //被勾选
  // Message.ShowMessage("OK");
  //}
  }
  }

求解




------解决方案--------------------
控件是需要注册的。
你在前台直接用控件。通过visible属性控制是否显示。
------解决方案--------------------
你前台:
C# code

<asp:Repeater ID="rpt" runat="server">
      <ItemTemplate>
           <tr>
              <td>
            <input id='<%#Eval("ID")%>' type="checkbox" value='<%#Eval("ID")%>' runat="server"  Visible='<%#IsVisible(<%#Eval("ID"%>)%>'/>
               </td>
              </tr>
       </ItemTemplate>
      <ItemStyle  HorizontalAlign="Center" />
</asp:Repeater>

后台根据写一个IsVisible方法,返回一个bool值就行了
public bool IsVisible(string ID)
{
    bool flag = false;
    //你的权限判断,然后返回 bool值即可,控制前面的checkbox是否显示
    return flag;
}

------解决方案--------------------
前台
C# code

<asp:Repeater ID="repShopId" runat="server">
                            <ItemTemplate>
                                <tr>
<td>
<input name="chkID" type="checkbox" value='<%# Eval("Id") %>' />
</td>
</tr></asp:Repeater>

------解决方案--------------------
HTML code
 Repeater 里面
 <input type='checkbox' id='ChkSelect' class='nogrid' runat="server"  value='<%#eval_r("ItemID")%>'/> 
Repeater 外面
<input id="Checkbox1" type="checkbox" onclick='selectAll()' />
 <asp:Button ID="Button1" runat="server" Text="Delete" OnClick="Button1_Click" />

------解决方案--------------------
我想说的上面的都说了,顶一下
------解决方案--------------------
已经测试6楼的好用
var checkbox = document.getElementsByTagName_r("input");
修正下 var checkbox = document.getElementsByTagName("input");

------解决方案--------------------
蛋疼的结帖率
------解决方案--------------------
看帖回复是种美德。。回帖得分才是王道。