如题!高手请指教!!例如:
<HeaderTemplate>
<asp:CheckBox ID="CheckAll" OnCheckedChanged="ChkAll" AutoPostBack="True" Runat="server"></asp:CheckBox>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chk" Runat="server" Text="ss"></asp:CheckBox>
</ItemTemplate>这样的代码应该如何实现这个功能呢?
<HeaderTemplate>
<asp:CheckBox ID="CheckAll" OnCheckedChanged="ChkAll" AutoPostBack="True" Runat="server"></asp:CheckBox>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chk" Runat="server" Text="ss"></asp:CheckBox>
</ItemTemplate>这样的代码应该如何实现这个功能呢?
然后设置它的事件onCheckedChanged拌定到一个事件上。
在那个事件上判断。如果checked=true
那么循环datagrid里的item,并取得他们的checkbox。然后都设置为true
反之亦然。以下是关于在datagrid中如何触发其中的控件。这里是关于你的这个onCheckedChanged事件的触发http://www.cnblogs.com/lovecherry/archive/2005/04/04/131787.html参考。。这样你因该可以找到思路了吧。恩!
{
//改变列的选定,实现全选或全不选。
CheckBox cbCheckAll = (CheckBox)sender;
CheckBox chkExport ;
if( cbCheckAll.Checked)
{
foreach(DataGridItem oDataGridItem in MyDataGrid.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl("chk");
chkExport.Checked = true;
}
}
else
{
foreach(DataGridItem oDataGridItem in MyDataGrid.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl("chk");
chkExport.Checked = false;
}
}
}
<script language="javascript" type="text/javascript">
<!--
<!-- 全选 -->
//chakVal 是否被选中
//idVal checkbox的id 或name
//Prefix checkbox的id或name前缀
function selectall(chkVal,idVal,Prefix){
//window.alert(idVal +'|'+Prefix);
var frm = document.forms[0];
for (i=0;i<frm.elements.length;i++)
{
if (frm.elements[i].id.indexOf(idVal)!=-1 || frm.elements[i].id.indexOf(Prefix) !=-1)
{
frm.elements[i].checked = chkVal;
}
}
}<!-- 改变选择列的颜色 -->
//chbox 被选中的checkbox
//parentid 父checkbox的id
//Prefix checkbox的id或name前缀
function changechecked(chbox,parentid,Prefix){
var chb =chbox.checked;
var frm = document.forms[0];
var parent = new Object();
for(i=0;i<frm.elements.length;i++)
{
if(frm.elements[i].type == "checkbox")
{
if(frm.elements[i].id.indexOf(parentid)!=-1)
{
parent = frm.elements[i];
}
}
}
if (chb) {
chb.checked = true;
if(isallselected(Prefix)){
parent.checked = true;
}
}else{
parent.checked = false;
chb.checked = false;
}
}<!-- 是否有选中? -->
function isselected(){
var f = document.forms[0];
for (i=0;i<f.elements.length;i++)
if ( (f.elements[i].checked)) return true;
return false;
}<!--是否全部选中? -->
//Prefix checkbox的id或name前缀
function isallselected(Prefix){
var selectcount = 0;
var allcount=0;
var frm = document.forms[0];
for(i=0;i<frm.elements.length;i++){
if(frm.elements[i].type == "checkbox")
{
if (frm.elements[i].checked &&
((frm.elements[i].name.indexOf(Prefix) !=-1)||(frm.elements[i].id.indexOf(Prefix) !=-1)) )
{
selectcount = selectcount + 1;
}
}
}
for(i=0;i<frm.elements.length-1;i++){
if ((frm.elements[i].name.indexOf(Prefix) !=-1)||(frm.elements[i].id.indexOf(Prefix) !=-1)){
allcount = allcount+1;
}
}
if(selectcount==(allcount-1))
return true;
else
return false;
}
function sendallcode()
{
var frm = document.forms[0];
var idVal = new String();
var selectidlist = new String();
var SelectCode = new Object();
for(i =0;i<frm.elements.length;i++)
{
if(frm.elements[i].type == "checkbox")
{
if(frm.elements[i].id.indexOf("Select") !=-1)
{
idVal = frm.elements[i].id;
idVal = idVal.substring(idVal.indexOf("Select")+6,idVal.length);
if(frm.elements[i].checked)
{
selectidlist +=idVal+"_1"+",";
}
else
{
selectidlist +=idVal+"_0"+",";
}
}
}
if(frm.elements[i].name.indexOf("codeselectlist") !=-1)
{
SelectCode = frm.elements[i];
}
}
SelectCode.value = selectidlist;
//frm.all.codeselectlist.value =SelectCode.value ;
//window.confirm(frm.all.codeselectlist.value);
}
//-->
</script>
前台这样
<HeaderTemplate>
<asp:CheckBox ID="CheckAll" OnCheckedChanged="ChkAll" AutoPostBack="True" Runat="server"></asp:CheckBox>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chk" Runat="server" Text="ss" OnCheckedChanged="chk_CheckedChanged"></asp:CheckBox>
</ItemTemplate>然后在后台写 Protected Sub chk_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs)
If CType(sender, CheckBox).Checked = True Then
Response.Write("<script>alert('您选中了这一列,,可以添加数据了!');</script>")
End If
End Sub
注意要Protected关键字
protected void chk_CheckedChanged(object sender, System.EventArgs e)
{
if (((CheckBox)(sender)).Checked == true) {
Response.Write("<script>alert('您选中了这一列,,可以添加数据了!');</script>");
}
}JS线少刷新。要是客户端不支持JS呢??呵呵
我觉得还是javascript好一些
在ASPX的页面中,已经声明了用C#了,那么如何插入javascript的代码呀??