非常着急,不能正确得到checkbox的checked属性,老是为false,其他属性均正确。 <asp:Repeater ID="Repeater1" runat="server">
            <ItemTemplate>
                <table border="0" cellpadding="0" cellspacing="0" style="width: 460px;">
                    <tr>
                        <td style="width: 5%;">
                            <asp:CheckBox ID="toCheck" runat="server" ToolTip='<%#Eval("GroupId") %>' />
                        </td>
                        <td style="width: 20%;">
                            <asp:Label ID="lab" runat="server" Text='<%#Eval("GroupName")%>'></asp:Label>
                        </td>
                    </tr>
                </table>
            </ItemTemplate>
        </asp:Repeater>private PagedDataSource pds = new PagedDataSource();
        private string mobileId = "";
        protected void Page_Load(object sender, EventArgs e)
        {
            mobileId = "13811666440";
            //sqlDs.SelectParameters[0].DefaultValue = mobileId;
            RepeaterDataBind();
        }        protected void btnDelete_Click(object sender, EventArgs e)
        {
            CheckBox isChecked;
            foreach (DataListItem item in dlGroup.Controls)
            {
                if (item.ItemType == ListItemType.Item)
                {
                    isChecked = (CheckBox)item.FindControl("toCheck");
                    if (isChecked.Checked)
                    {
                        string cmdStr = string.Format("update TcontactGroup set State=0,time={2} where MobileId='{0}' and GroupId={1}", mobileId, isChecked.ToolTip, DateTime.Now.Ticks);
                        //SqlHelp sql = new SqlHelp();
                        //sql.Exec(cmdStr);
                    }
                }
            }            foreach (RepeaterItem dataItem in Repeater1.Items)
            {
                isChecked = (CheckBox)dataItem.FindControl("toCheck");
                if (isChecked.Checked == true)
                {
                    //string xmlStr = SpellXml.SpellDelContact(Session["pingcoId"], isChecked.Text);
                    //Del(xmlStr);
                }
            }
        }
        private void RepeaterDataBind()
        {
            string cmdStr = string.Format("select * from TContactGroup where mobileid='{0}'", mobileId);
            SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["PingCo_New"].ConnectionString);
            SqlCommand cmd = new SqlCommand(cmdStr, conn);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            conn.Open();
            da.Fill(ds);
            SqlDataReader read = cmd.ExecuteReader();
            DataView dv = ds.Tables[0].DefaultView;
            pds.DataSource = dv;
            pds.PageSize = 12;
            dlGroup.DataSource = dv;
            dlGroup.DataBind();            Repeater1.DataSource = read;
            Repeater1.DataBind();
        }

解决方案 »

  1.   

                foreach (RepeaterItem dataItem in Repeater1.Items)
                {
                    isChecked = (CheckBox)dataItem.FindControl("toCheck");
                    if (isChecked.Checked == true)
                    {
                        //string xmlStr = SpellXml.SpellDelContact(Session["pingcoId"], isChecked.Text);
                        //Del(xmlStr);
                    }
                }
    就看这就行,这要你能isChecked.Checked=true就行,100分送上,在加100也行。
      

  2.   


            protected void Page_Load(object sender, EventArgs e)
            {
                mobileId = "13811666440";
                //sqlDs.SelectParameters[0].DefaultValue = mobileId;
    if(!IsPostBakc)
    {
                RepeaterDataBind();
    }
            }
      

  3.   

    RepeaterDataBind();
    这句话要放到if(!isPostBack)里面。
      

  4.   

    RepeaterDataBind()对Repeater进行了重新绑定,当删除的时候,首先执行PageLoad事件然后执行删除事件,在PageLoad的时候,对Repeater进行了重新绑定,所有的CheckBox又是都没有选中的了,所以checkbox的checked属性,老是为false
      

  5.   

    QUOTE:晕,差一秒...
    --------------------------
    张生,今天生意不好啊,100分还差几分.
    你收获如何?
      

  6.   

    RepeaterDataBind(); 
    这句话要放到if(!isPostBack)里面。
    来接个分
      

  7.   

    protected void Page_Load(object sender, EventArgs e)
            {
                //mobileId = "13811666440";
    if(!IsPostBakc)
    {
      //
    }
            }
      

  8.   

    QUOTE:念你是犯,只是警告下 
    ---------------------------------
    VMM大版主在这么严肃的场合下都会打错字,真是......厉害!
      

  9.   

    得分已删除,再关监狱999天(asp.net)!