我是用vs2055开发webform的,我在一个communion.js里面写了这样的一段js脚本
function SelectAll(tempControl){
var theBox=tempControl;
xState=theBox.checked;
elem=theBox.form.elements;
for(i=0;i<elem.length;i++)
if(elem[i].type=="checkbox" && elem[i].id!=theBox.id)
{
if(elem[i].checked!=xState)
elem[i].click();
}
}
实现全选这个功能的~
我在a.aspx页面中加了一个datalist在datalist的代码如下:
<asp:DataList ID="myDLBlog" runat="server" CellPadding="4" ForeColor="#333333" ShowFooter="False" Width="100%">
<FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<SelectedItemStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
<ItemTemplate>
<table border="0" cellpadding="5" cellspacing="0" width="100%">
<tr>
<td><asp:CheckBox id="chkExport" runat="server"></asp:CheckBox>
</td>
.......
</tr>
</table>
</ItemTemplate>
<AlternatingItemStyle BackColor="White" />
<ItemStyle BackColor="#E3EAEB" />
<HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<HeaderTemplate>
<table border="0" cellpadding="5" cellspacing="0" width="100%">
<tr>
<td style=" width:20px">
</td>
........
</tr>
</table>
</HeaderTemplate>
</asp:DataList>还在datalist下面加了一个checkbox和一个button代码如下:
<asp:checkbox id="chkHeader" onclick="javascript:SelectAll(this);" runat="server" AutoPostBack="False" Text="全选"></asp:checkbox>datalist绑定代码如下:
private void getwebblog_fab()
{
SqlDataReader result =mywebblog.getblog_fab(Request.Cookies["username"].Value.ToString());
myDLBlog.DataKeyField = "blogid";
myDLBlog.DataSource = result;
myDLBlog.DataBind();
在button的cs代码如下:
protected void DelSeletedID_Click(object sender, EventArgs e)
{
System.Web.UI.WebControls.CheckBox chk;
int all = this.myDLBlog.Items.Count;
for (int i = 0; i < all; i++)
{
chk = (CheckBox)(this.myDLBlog.Items[i].FindControl("chkExport"));
if (chk.Checked == true)
{
int ID= Convert.ToInt32(this.myDLBlog.DataKeys[this.myDLBlog.Items[i].ItemIndex]); //*************主要是这里要取到选中ID的值************************
...........
}
}
}
以上代码在A.aspx中能正常实现,ID也能取到..
///////////////////////
现在问题是我把相同的代码放在B.aspx页面中却if (chk.Checked == true)这个地方的checked总是false;请问一下这个是什么原因呢?说明:
上面的datalist绑定,以及全选这个js脚本无误的
function SelectAll(tempControl){
var theBox=tempControl;
xState=theBox.checked;
elem=theBox.form.elements;
for(i=0;i<elem.length;i++)
if(elem[i].type=="checkbox" && elem[i].id!=theBox.id)
{
if(elem[i].checked!=xState)
elem[i].click();
}
}
实现全选这个功能的~
我在a.aspx页面中加了一个datalist在datalist的代码如下:
<asp:DataList ID="myDLBlog" runat="server" CellPadding="4" ForeColor="#333333" ShowFooter="False" Width="100%">
<FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<SelectedItemStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
<ItemTemplate>
<table border="0" cellpadding="5" cellspacing="0" width="100%">
<tr>
<td><asp:CheckBox id="chkExport" runat="server"></asp:CheckBox>
</td>
.......
</tr>
</table>
</ItemTemplate>
<AlternatingItemStyle BackColor="White" />
<ItemStyle BackColor="#E3EAEB" />
<HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<HeaderTemplate>
<table border="0" cellpadding="5" cellspacing="0" width="100%">
<tr>
<td style=" width:20px">
</td>
........
</tr>
</table>
</HeaderTemplate>
</asp:DataList>还在datalist下面加了一个checkbox和一个button代码如下:
<asp:checkbox id="chkHeader" onclick="javascript:SelectAll(this);" runat="server" AutoPostBack="False" Text="全选"></asp:checkbox>datalist绑定代码如下:
private void getwebblog_fab()
{
SqlDataReader result =mywebblog.getblog_fab(Request.Cookies["username"].Value.ToString());
myDLBlog.DataKeyField = "blogid";
myDLBlog.DataSource = result;
myDLBlog.DataBind();
在button的cs代码如下:
protected void DelSeletedID_Click(object sender, EventArgs e)
{
System.Web.UI.WebControls.CheckBox chk;
int all = this.myDLBlog.Items.Count;
for (int i = 0; i < all; i++)
{
chk = (CheckBox)(this.myDLBlog.Items[i].FindControl("chkExport"));
if (chk.Checked == true)
{
int ID= Convert.ToInt32(this.myDLBlog.DataKeys[this.myDLBlog.Items[i].ItemIndex]); //*************主要是这里要取到选中ID的值************************
...........
}
}
}
以上代码在A.aspx中能正常实现,ID也能取到..
///////////////////////
现在问题是我把相同的代码放在B.aspx页面中却if (chk.Checked == true)这个地方的checked总是false;请问一下这个是什么原因呢?说明:
上面的datalist绑定,以及全选这个js脚本无误的
解决方案 »
- 是否可以新建无名的文件?
- 急,请假大家一个问题
- 这么做不对吗?为什么不对?private func(int[5] parra) {......}
- 请教:XML读写问题?(新手上路,请多多指教)
- 求一个比较有趣的WINFORM程序!不好意思 今天分没了 :)
- 我想学C#,请问什么书比较好,最近比较忙,只有今天有空去书店,急,在线等
- 用C#编写的通讯软件客户端如何在不同版本的windows下运行?不装.Net framework不行吗?
- 这两本书大家看过后有何看法,详细说说好吗?谢谢!
- 另外:又有人用过windows media load simulator吗?
- C#创建数组
- C#程序占用内存大????▲
- 请教
我解决的办法是将待选定的那列作为datakeyfield,没有问题!