簡體   English   中英

使用C#選中復選框時在datagridview中獲取行/多行數據

[英]Getting Row /multiple Row data in datagridview when checkbox is checked using c#

嗨,我想問一個解決方案,如果可以選中該復選框並將其保存到xml文件,則可以從datagridview獲取整行數據或多行數據

這是我現有的代碼

private void button1_Click(object sender, EventArgs e)
{
  DataTable dt = new DataTable();
  dt = ds.Tables["Tables"];
  DataView view = new DataView(dt);
  view.RowFilter = "MD_ID = " + MdNum;

  //add checkbox to datagrid data
  dataGridView2.Columns.Add(chk);
  chk.HeaderText = "Select";

  //populate datagridview with data
  dataGridView2.DataSource = view;
}

private void SaveBtn_Click(object sender, EventArgs e)
{

}

我的表格有4列MD_Num,MD_ID,MD_AGE,MD_DATE。 是否可以選擇一行並將該列的每個值插入一個單獨的文本框,並將其保存為ff格式的XML文件:

<MDS>
  <MD> 
      <Tables>
         <MD_Num>VALUE#</MD_Num>
         <MD_Num>VALUE#<MD_Num>
         <MD_AGE>VALUE#<MD_AGE>
         <MD_DATE>VALUE#<MD_DATE>
      <Tables>
  <MD>
</MDS>

回答第二個問題... dataGridView的單元格單擊事件中

  private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        txtnum.Text = dataGridView1.SelectedRows[0].Cells["MD_Num"].Value.ToString();
        txtid.Text = dataGridView1.SelectedRows[0].Cells["MD_Num"].Value.ToString();
        txtage.Text = dataGridView1.SelectedRows[0].Cells["MD_Age"].Value.ToString();
        txtdate.Text = dataGridView1.SelectedRows[0].Cells["MD_Date"].Value.ToString();
    }

對於保存按鈕,請隨時更改xml文件的路徑

    private void btn_Save_Click(object sender, EventArgs e)
    {
        string num = txtnum.Text;
        string id = txtid.Text;
        string age = txtage.Text;
        string date = txtdate.Text;

        XmlTextWriter writer = new XmlTextWriter(@"C:\Users\Public\Desktop\Details.xml", System.Text.Encoding.UTF8);
        writer.WriteStartDocument(true);
        writer.Formatting = Formatting.Indented;
        writer.Indentation = 2;
        writer.WriteStartElement("MDS");
        create_node(num, id, age,date, writer);           
        writer.WriteEndElement();
        writer.WriteEndDocument();
        writer.Close();
        MessageBox.Show("XML File created ! ");
    }

那么您將必須添加的方法將創建節點

  private void create_node(string num, string id, string age,string date, XmlTextWriter writer)
    {
        writer.WriteStartElement("Table");
        writer.WriteStartElement("MD_Num");
        writer.WriteString(num);
        writer.WriteEndElement();
        writer.WriteStartElement("MD_ID");
        writer.WriteString(id);
        writer.WriteEndElement();
        writer.WriteStartElement("MD_Age");
        writer.WriteString(age);
        writer.WriteEndElement();
        writer.WriteStartElement("MD_Date");
        writer.WriteString(date);
        writer.WriteEndElement();
        writer.WriteEndElement();
    }

哦,在InitializeComponent()將選擇模式更改為全行選擇

 dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM