foreach(DataGridItem dataGridItem in myDataGrid.Items)
{
  if(((CheckBox)dataGridItem.FindControl("checkboxID")).Checked)
   {
string UserName= dataGridItem.Cells[0].Text;
         //得到了選定某一行的username;
    }
 }

解决方案 »

  1.   

    Dim dgItem As DataGridItem
     Dim chkSelected As CheckBox
     Dim strUserName As New StringBuilder For Each dgItem In dtgTune.Items
         chkSelected = dgItem.FindControl("chkTune")
         If (chkSelected.Checked) Then
             strUserName.Append(dgItem.Cells(1).Text)
             strUserName.Append(",")
         End If
     Next
      

  2.   

    楼主也可以给checkbox的onclick一个js方法
      

  3.   

    foreach(DataGridItem dataGridItem in myDataGrid.Items)
    {
      if(((CheckBox)dataGridItem.FindControl("checkboxID")).Checked)
       {
    string UserName= dataGridItem.Cells[0].Text;
             //得到了選定某一行的username;
            //做相關操作。
        }
     }
    這是一個循環,找出你選定的全部username,
    string UserName= dataGridItem.Cells[0].Text 這樣定義隻是取得選定行的值,你要全部就把UserName += dataGridItem.Cells[0].Text取得字符串了。
      

  4.   

    如果这个DataGrid要分页呢?
    下面是解决办法:
    private void btOk_Click(object sender, System.EventArgs e)
    {
      this.SetDgChekedItem();
      Hashtable selectedItem = (Hashtable)ViewState["selectedArray"];
      if(selectedItem.Count != 0)
      {
        foreach(DictionaryEntry item in selectedItem)
        {
          //操作
        }
      }
    }private void dgShareList_PageIndexChanged(......)
    {
      this.SetDgChekedItem();
      dgShareList.CurrentPageIndex = e.NewPageIndex;
      this.BindData();
    }private void BindData()
    {
      //从数据库中读取数据
    }private void dgShareList_ItemDataBound(...)
    {
      if(ViewState["selectedArray"] != null)
      {
        Hashtable selectedItem = (Hashtable)ViewState["selectedArray"];
        for(int i=0;i<dgShareList.Items.Count;i++)
        {
           CheckBox cbSelect = (CheckBox)dgShareList.Items[i].FindControl("cbCheck");
           if(selectedItem.ContainsKey(dgShareList.DataKeys[i].ToString()))
           {
             cbSelect.Checked = true;
           }
       }
      }
    }private void SetDgChekedItem()
    {
      Hashtable selectedItem ;
      if(ViewState["selectedArray"] != null)
      {
        selectedItem = (Hashtable)ViewState["selectedArray"];
      }
      else
      {
        selectedItem = new Hashtable();
      }  for(int i=0;i<dgShareList.Items.Count;i++)
      {
        CheckBox cbSelect = (CheckBox)dgShareList.Items[i].FindControl("cbCheck");    if(cbSelect.Checked)
        {
          if(!selectedItem.ContainsKey(dgShareList.DataKeys[i].ToString()))
          {
             selectedItem.Add(dgShareList.DataKeys[i].ToString(),dgShareList.DataKeys[i].ToString());
          }
        }
        else
        {
          if(selectedItem.ContainsKey(dgShareList.DataKeys[i].ToString()))
          {
            selectedItem.Remove(dgShareList.DataKeys[i].ToString());
          }
        }
       }  ViewState["selectedArray"] = selectedItem;
    }
      

  5.   

    private void cmdFindSelected_Click(object sender, System.EventArgs e)
      {
       System.Web.UI.WebControls.CheckBox chkExport;
       System.Collections.ArrayList oExArgs = new System.Collections.ArrayList();
       string sID;
       Label1.Text="1000";
       foreach(DataGridItem oDataGridItem in dgMain.Items)
       {
          chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
    if( chkExport.Checked)
    {
     Label1.Text = "wwwwwwww";
     //sID = ((Label)oDataGridItem.FindControl("lblColumn")).Text;
     //oExArgs.Add(sID);
     //int i = 0;
     //for( i = 0;i<oExArgs.Count;i++)
     //{
     // Label1.Text += oExArgs[i] + "<br>";
     //}
    }
       }
    上面的程序当我选择复选框然后按下按扭label.text应该是wwwwwwwwww为什么值没有变呢。