gpt4 book ai didi

asp.net - C#/ASP.Net - 在 GridView 中提取列的位值

转载 作者:行者123 更新时间:2023-12-04 05:32:42 25 4
gpt4 key购买 nike

我有一个受 SQL 约束的 gridview。在某些列中有位值。当我使用 C# 将值放入 gridview 时,会显示复选框。我需要将该列的值提取到文本中。

    SqlConnection sConnection = new SqlConnection(MyConnectionString);
SqlCommand sCommand = new SqlCommand();
using (sConnection)
{
sCommand.Connection = sConnection;
sCommand.CommandText = "MyStoredProcedure";
sCommand.CommandType = CommandType.StoredProcedure;
sCommand.Connection.Open();
SqlDataReader reader = sCommand.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
gridView.DataSource = reader;
gridView.DataBind();
}
for (int i = 0; i < gridView.Rows.Count; i++)
{
ListBox1.Items.Add(gridView.Rows[i].Cells[3].Text);
}
}
}

gridview 列数据类型为“位”。我无权访问数据库或存储过程来更改那里的任何内容。我需要以某种方式提取“0”或“1”值,但是当我像上面那样做时,文本是空白的。

我也尝试使用“GetOrdinal”。它从数据库返回了一个 True/False 值,但我无法弄清楚如何获取 gridview 中每个项目的值。
    if (!reader.IsDBNull(reader.GetOrdinal("MyColumn1")))
{
ListBox1.Items.Add(reader.GetOrdinal("MyColumn1").ToString());
}

最佳答案

总体概述:

  • 您需要能够找到生成的 CheckBox 并获取其“Checked”属性的值。
  • 为此,您需要能够在 GridViewRow 上使用 FindControl() 方法。
  • 要使用 FindControl,CheckBox 需要一个可预测的名称。
  • 要获得可预测的名称,您需要将该列设为 TemplateColumn,以便您可以在 ASPX 页面上的标记中指定 CheckBox 的名称。

  • 这里有一套完整的工作代码: http://www.codeproject.com/Articles/25056/The-RIGHT-Way-to-Use-Checkboxes-in-a-NET-Repeater

    这显示了Repeater 的代码,但它与任何DataBound 控件的原理和通用代码相同。

    下面的代码应该可以修改以匹配您的数据库名称:
     <asp:TemplateField> 
    <ItemTemplate >
    <asp:checkbox id="MyColumnNameCheckbox" runat="server" />
    </ItemTemplate>
    </asp:TemplateField>
        string defaultvalue = "0"; // To be used to display the value of the original bit field.
    foreach (GridViewRow row in GridView1.Rows)
    {
    CheckBox chkBx = (CheckBox)row.FindControl("MyColumnNameCheckbox");

    if (chkBx != null && chkBx.Checked)
    {
    defaultvalue = "1";
    }
    }

    关于asp.net - C#/ASP.Net - 在 GridView 中提取列的位值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12376864/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com