现在的位置: 首页 > 综合 > 正文

关于循环 GridView 及 Repeater 中的数据行的问题!

2013年05月31日 ⁄ 综合 ⁄ 共 2046字 ⁄ 字号 评论关闭
GridView 中嵌套 Repeater ,显示分级数据:

在 GridView1 的 GridView1_DataBound 事件中这样写:

 protected void GridView1_DataBound(object sender, EventArgs e)
    {
        
foreach (GridViewRow row in GridView1.Rows)
        {
            Label LabelID 
= row.FindControl("Label1"as Label;
            
string parentID = LabelID.Text.ToString();
            Repeater subRepeater 
= row.FindControl("Repeater1"as Repeater;
            
string sql = "select * from CandidateUser where WantPosition = '"+parentID+"' order by UID asc";
            DataSet ds 
= newdb.CommonDataSet(sql);
            subRepeater.DataSource 
= ds.Tables[0].DefaultView;
            subRepeater.DataBind();
            
        }

    }

然后,当点击按钮,提交此页面,需要循环 GridView1 和 Repeater1 中的数据取值,存入数据库,如何取值呢,这样做:

protected void Button1_Click(object sender, EventArgs e)
{
  
foreach (GridViewRow row in GridView1.Rows)
        {
            Label LabelID 
= row.FindControl("Label1"as Label; //竞聘职位的ID号Label
            parentID = LabelID.Text.ToString();//竞聘职位的ID号

            Repeater subRepeater = row.FindControl("Repeater1"as Repeater;

            foreach (RepeaterItem subrow in subRepeater.Items)
            {
                Label LabelUserID 
= subrow.FindControl("Label2"as Label;  //竞聘人的身份ID号Label
                CandidateUserID = LabelUserID.Text.ToString();//竞聘人的身份ID号

                TextBox txbScore 
= subrow.FindControl("TextBox1"as TextBox;  //分数 TextBox1
                CandidateScore = txbScore.Text.ToString();//分数

                CheckBox ckbGiveUp 
= subrow.FindControl("CheckBox1"as CheckBox;  //分数 TextBox1
                if (ckbGiveUp.Checked == true)
                {
                    giveup 
= "1";
                }
                
else
                {
                    giveup 
= "0";
                }

                sql = "insert into VoteTable (PositionID,CandidateUserID,CandidateUserScore,GiveUpVote,WhoSendTheVote) values ('" + parentID + "','" + CandidateUserID + "','" + CandidateScore + "','" + giveup + "','" + getName + "')";
                newdb.ModifyData(sql);
         
            }

        }

 
 

}

抱歉!评论已关闭.