我是用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脚本无误的