小编cla*_*sic的帖子

在Gridview DataBound中显示基于varchar列的CheckBox

SQL Server表结构:

ChapName        varchar(200)
Status          varchar(1)
Run Code Online (Sandbox Code Playgroud)

要求:

  • 如果status列的值为T,我想在Visual Studio 2010的ASP.NET网格视图中显示复选框,否则请检查并取消选中.但它只显示文本框.
  • 我尝试过<asp:templatefield>,<asp:itemtemplate>但如果我尝试绑定此复选框,则会抛出错误.
  • 因为我是这个领域的初学者,所以需要任何示例代码.

我试过的代码:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
            CheckBox c = (CheckBox)GridView1.FindControl("ChkStatus");
            TextBox TB = (TextBox)GridView1.FindControl("Status");

        //Response.Write(TB.Text);
            if (TB.Text == "T")
            {
                c.Checked = true;
            }
            else
            {
                c.Checked = false;
            }
    }
Run Code Online (Sandbox Code Playgroud)

我得到的错误

你调用的对象是空的.

描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:
System.NullReferenceException:未将对象引用设置为对象的实例.

Aspx标记:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
              DataKeyNames="Comp,QTypeCode" DataSourceID="SDS_QType_Edit" 
              BackColor="White" BorderColor="#DEDFDE" BorderStyle="None" 
              BorderWidth="1px" 
              CellPadding="4" ForeColor="Black" GridLines="Vertical" 
              AllowPaging="True" AllowSorting="True" 
              onselectedindexchanged="GridView1_SelectedIndexChanged" 
              onrowdatabound="GridView1_RowDataBound">
    <AlternatingRowStyle BackColor="White" />
    <Columns>
        <asp:CommandField ShowEditButton="True" ShowSelectButton="True" …
Run Code Online (Sandbox Code Playgroud)

c# asp.net checkbox varchar visual-studio-2010

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

asp.net ×1

c# ×1

checkbox ×1

varchar ×1

visual-studio-2010 ×1