Instead of doing it is server side, u can try the same in client side using javascript.
Add the below javascript in you aspx/ascx page
<script language="javascript" type="text/javascript">
function CheckAllDataListCheckBoxes(checkBoxID, checkVal) {
var re = new RegExp(checkBoxID);
for (i = 0; i < document.forms[0].elements.length; i++) {
elm = document.forms[0].elements[i]
if (elm.type == 'checkbox') {
if (re.test(elm.name) && !elm.disabled) {
elm.checked = checkVal;
}
}
}
}
</script>
the checkbox should be added to grid as given below
<asp:TemplateField>
<HeaderTemplate>
<table>
<tr>
<td>
<asp:CheckBox ID="chkbxSelectAll" onclick="CheckAllDataListCheckBoxes('chkbxProject', this.checked)"
runat="server" ToolTip="Select All" />
</td>
</tr>
</table>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkbxProject" runat="server" ToolTip='<%# DataBinder.Eval(Container.DataItem,"ProjectDescCodeDB") %>' />
<input type="hidden" id="hdnProjectId" runat="server" value='<%# DataBinder.Eval(Container.DataItem,"ID") %>' />
<input type="hidden" id="hdnIsGlobBid" runat="server" value='<%# DataBinder.Eval(Container.DataItem,"IsGlobalBid") %>' />
</ItemTemplate>
</asp:TemplateField>