【问题标题】:Getting Row /multiple Row data in datagridview when checkbox is checked using c#使用c#选中复选框时在datagridview中获取行/多行数据
【发布时间】:2016-11-14 19:09:49
【问题描述】:

您好,我想问一个解决方案,如果选中复选框,我可以从 datagridview 获取整行数据或多行数据并将其保存到 xml 文件中

这是我现有的代码

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>

【问题讨论】:

    标签: c# xml checkbox datagridview


    【解决方案1】:

    回答您的第二个问题... 在 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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-03
      相关资源
      最近更新 更多