Please try following solution and let me know if it works :
I don't understand why your code does not work. It seems correct.
[Edit] :
Here I have made one solution and it's working perfect :
Repeater with footer button :
<asp:Repeater ID="rptUsers" runat="server">
<HeaderTemplate>
<table id="check" border="1">
<tr>
<th>Select</th>
<th>Name
</th>
<th>Country
</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:CheckBox ID="chkbox" Text="" runat="server" />
</td>
<td>
<%#Eval("Name") %>
</td>
<td>
<%#Eval("Country") %>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
<tr>
<td>
<table style="background-color: yellow; height: 10px">
<tr>
<td>
<asp:Button ID="btn" ForeColor="Green" runat="server" OnClick="btn_Click" Text="Delete Selected" OnClientClick="return (Validate());"></asp:Button>
</td>
</tr>
</table>
</td>
</tr>
</table>
</FooterTemplate>
</asp:Repeater>
Code behind to bind repeater and button click :
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
rptUsers.DataSource = BindGrid();
rptUsers.DataBind();
}
}
protected void btn_Click(object sender, EventArgs e)
{
Response.Write("Post back done");
}
private DataTable BindGrid()
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Id", typeof(int)),
new DataColumn("Name", typeof(string)),
new DataColumn("Country",typeof(string)) });
dt.Rows.Add(1, "Rajesh Biswas", "India");
dt.Rows.Add(2, "Johny Depp", "US");
dt.Rows.Add(3, "Mad Hatter", "US");
dt.Rows.Add(4, "Willy Bonka", "US");
return dt;
}
Javascript code :
<script type="text/javascript">
function Validate() {
var count = 0;
var repeater = document.getElementById("check");
var checkBoxes = repeater.getElementsByTagName("input");
for (var i = 0; i < checkBoxes.length; i++) {
if (checkBoxes[i].type == "checkbox" && checkBoxes[i].checked) {
count++;
}
}
if (count == 0) {
alert("Kindly select the feedback to delete");
return false;
}
else {
return confirm("Are you sure you want to delete?");
}
}
</script>
Good luck.