如何在单击按钮时检查数据网格上是否选中了复选框

本文关键字:是否 网格 复选框 数据网 数据 单击 按钮 检查 | 更新日期: 2023-09-27 18:26:46

这是数据网格的Xaml代码,以及添加到数据网格第一行的复选框项。当复选框被选中时,我需要一种识别数据网格中所选行的方法。

XAML

<DataGrid ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto" AutoGenerateColumns="True" Name="MedicationDatagrid" Width="{Binding GroupBox}" Background="White" Height="200" >
    <DataGrid.Columns>
        <DataGridTemplateColumn >
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <CheckBox Name="chkCheckinMedication"  />
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>

C#

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        checkinCheckBox();
    }
    private void checkinCheckBox()
    {
        // find datarow and store data into database            
    }

如何在单击按钮时检查数据网格上是否选中了复选框

解决此问题的一种肮脏方法是在复选框周围使用隐藏字段,您可以在其中放置所选内容的id。。。在你的代码索引中,你可以看到那一行的值。。。

protected void Button_Click(object sender, EventArgs e)
{
 foreach (GridViewRow itemrow in GridView1.Rows)
 {
   CheckBox cbview = (CheckBox)(itemrow.Cells[0].FindControl("viewdata"));
   if (cbview.Checked)
   {
      string value = GetObjectType(itemrow.Cells[2].Controls[1]);
      Response.Write(value);
   }
 }
private String GetObjectType(Control ctrl)
    {
        switch (ctrl.GetType().Name)
        {
            case "Label":
                return ((Label)ctrl).Text;
            case "TextBox":
                return ((TextBox)ctrl).Text;
        }
        return "";
    }