使用js写的全选方法
//全选
function ChooseAll(tb,check)
{
var objtb=document.getElementById(tb);
var num=objtb.getElementsByTagName("input");
var check=document.getElementById(check);
for(i=0;i<num.length;i++)
{
if(num[i].tagName=="INPUT")
{
if(check.checked==true)
{
num[i].checked=true;
}
else
{
num[i].checked=false;
}
}
}
}
全选和被选的子项checkbox都是用的客户端控件
可以实现全选但是我在此页面点击服务器控件想获取那些行是否被选中。却获取不到repeater的checkbox真实状态,一直都是显示默认的没选中。
我以为是没找到控件,把checkbox默认为选中。结果发现确实是找到了被选的子项。后来我在repeater外面写了一个客户端控件checkbox 同样用上面全选的方法找到它。
不管我怎么点服务器控件刷新,都是可以找到其真实状态(选中或没选中)不解为何repeater里面checkbox为何在全选方法下选中了,但是点服务器控件获取它的时候却还是默认状态。
求解。
//全选
function ChooseAll(tb,check)
{
var objtb=document.getElementById(tb);
var num=objtb.getElementsByTagName("input");
var check=document.getElementById(check);
for(i=0;i<num.length;i++)
{
if(num[i].tagName=="INPUT")
{
if(check.checked==true)
{
num[i].checked=true;
}
else
{
num[i].checked=false;
}
}
}
}
全选和被选的子项checkbox都是用的客户端控件
可以实现全选但是我在此页面点击服务器控件想获取那些行是否被选中。却获取不到repeater的checkbox真实状态,一直都是显示默认的没选中。
我以为是没找到控件,把checkbox默认为选中。结果发现确实是找到了被选的子项。后来我在repeater外面写了一个客户端控件checkbox 同样用上面全选的方法找到它。
不管我怎么点服务器控件刷新,都是可以找到其真实状态(选中或没选中)不解为何repeater里面checkbox为何在全选方法下选中了,但是点服务器控件获取它的时候却还是默认状态。
求解。
{
Response.Write(item.ToString() + "<bR/>");
}在这里可以用 var ,var在这里跟在js里有什么区别?
Request.Form["Item"] 为什么可以这样取?
为什么又Split(new char[] { ',' }?
,哪里来的?看来我懂的太肤浅了
还是解决不了
id值是得到了
但是我不能去控制checkbox是否被选中,
若用2楼的方法,checkbox必须是不能加 runat="server"
但是不加runat="server",我又找不到checkbox控件
继续等
在checkbox中 checked=<%#IsCheck(Eval("Id"))%>
在代码中建立IsCheck(object ob);
在里面判断是否在viewstate这个集合里 看不懂我就不管了
BindData();for (int i = 0; i < this.Repeater1.Items.Count; i++)
{
//取值
}
如果找得到控件。早就写好了<ItemTemplate>
<input type="checkbox" id="ckOne" runat="server" />
</ItemTemplate>
for (int i = 0; i < this.repRecord.Items.Count; i++)
{
if ((repRecord.Items[i].FindControl("chkOne") as HtmlInputCheckBox).Checked)
……………………
}
可是这样却找不到
说详细点 html控件 是不会在页面类中作为子项的 就算它加了ranat
只有服务器控件才可以在其页面类中作为子项被find
如果不行何来HtmlInput……
我曾经找了一下午这个问题