C# ASP.NET 复选框到 enable/disable
C# ASP.NET Checkbox to enable/disable
我是 c# 的新手,asp.net。
我正在制作一个网络表单来展示广告。
我创建了一个简单的 SQL 数据库并添加了一个 gridview。
假设这是数据表:
广告-URL 文本关键字复选框
test.com bla blaa
test2.com 啦啦啦
如何为每个 URL 添加一个复选框,这样如果选中它就会发布,如果没有选中它就不会发布?
您的 DataTable 需要一个布尔列。然后,当您将 DataTable 绑定到它时,您的 GridView 将自动具有复选框。
var dt = new DataTable();
dt.Columns.Add(new DataColumn("Selected", typeof(bool)));
var dgv = new DataGridView();
dgv.DataSource = dt;
在SQL中调用了类型
位
它将采用 true/false 1/0 个值
您问题的最佳示例。
GridView中可以通过以下两种方式动态启用和禁用CheckBox
1.使用Eval函数。
2. 使用 OnRowDataBound 事件。
GridView 是使用 DataTable 使用一些虚拟记录填充的。
using System.Data;
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Id"), new DataColumn("Name"), new DataColumn("Status") });
dt.Rows.Add(1, "John Hammond", "Absent");
dt.Rows.Add(2, "Mudassar Khan", "Present");
dt.Rows.Add(3, "Suzanne Mathews", "Absent");
dt.Rows.Add(4, "Robert Schidner", "Present");
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
在这项技术中,必须在 <% %> 标签内写下条件。您会注意到我在下面将 Status 字段的值与字符串 Present 匹配,因此对于 Status 为 Present 的所有记录,CheckBox 将被启用,其余的将被禁用。
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" Enabled='<%# Eval("Status").ToString().Equals("Present") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Name" HeaderText="Name" ItemStyle-Width="150" />
<asp:BoundField DataField="Status" HeaderText="Status" ItemStyle-Width="100" />
</Columns>
</asp:GridView>
另一种方法是利用GridView的OnRowDataBound事件。因此,首先您需要将 OnRowDataBound 事件处理程序分配给 GridView,如下所示。
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" OnRowDataBound="OnRowDataBound">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Name" HeaderText="Name" ItemStyle-Width="150" />
<asp:BoundField DataField="Status" HeaderText="Status" ItemStyle-Width="100" />
</Columns>
</asp:GridView>
然后您需要在后面的代码中实现 OnRowDataBound 事件处理程序,然后通过将值与 Status 字段匹配来有条件地启用和禁用 CheckBox。
此处 Status 字段的值与字符串 Absent 匹配,如果匹配则 CheckBox 被禁用。
protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
CheckBox CheckBox1 = (e.Row.FindControl("CheckBox1") as CheckBox);
if (e.Row.Cells[2].Text == "Absent")
{
CheckBox1.Enabled = false;
}
}
}
我是 c# 的新手,asp.net。
我正在制作一个网络表单来展示广告。
我创建了一个简单的 SQL 数据库并添加了一个 gridview。
假设这是数据表:
广告-URL 文本关键字复选框
test.com bla blaa
test2.com 啦啦啦
如何为每个 URL 添加一个复选框,这样如果选中它就会发布,如果没有选中它就不会发布?
您的 DataTable 需要一个布尔列。然后,当您将 DataTable 绑定到它时,您的 GridView 将自动具有复选框。
var dt = new DataTable();
dt.Columns.Add(new DataColumn("Selected", typeof(bool)));
var dgv = new DataGridView();
dgv.DataSource = dt;
在SQL中调用了类型 位
它将采用 true/false 1/0 个值
您问题的最佳示例。
GridView中可以通过以下两种方式动态启用和禁用CheckBox 1.使用Eval函数。 2. 使用 OnRowDataBound 事件。
GridView 是使用 DataTable 使用一些虚拟记录填充的。
using System.Data;
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Id"), new DataColumn("Name"), new DataColumn("Status") });
dt.Rows.Add(1, "John Hammond", "Absent");
dt.Rows.Add(2, "Mudassar Khan", "Present");
dt.Rows.Add(3, "Suzanne Mathews", "Absent");
dt.Rows.Add(4, "Robert Schidner", "Present");
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
在这项技术中,必须在 <% %> 标签内写下条件。您会注意到我在下面将 Status 字段的值与字符串 Present 匹配,因此对于 Status 为 Present 的所有记录,CheckBox 将被启用,其余的将被禁用。
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" Enabled='<%# Eval("Status").ToString().Equals("Present") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Name" HeaderText="Name" ItemStyle-Width="150" />
<asp:BoundField DataField="Status" HeaderText="Status" ItemStyle-Width="100" />
</Columns>
</asp:GridView>
另一种方法是利用GridView的OnRowDataBound事件。因此,首先您需要将 OnRowDataBound 事件处理程序分配给 GridView,如下所示。
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" OnRowDataBound="OnRowDataBound">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Name" HeaderText="Name" ItemStyle-Width="150" />
<asp:BoundField DataField="Status" HeaderText="Status" ItemStyle-Width="100" />
</Columns>
</asp:GridView>
然后您需要在后面的代码中实现 OnRowDataBound 事件处理程序,然后通过将值与 Status 字段匹配来有条件地启用和禁用 CheckBox。 此处 Status 字段的值与字符串 Absent 匹配,如果匹配则 CheckBox 被禁用。
protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
CheckBox CheckBox1 = (e.Row.FindControl("CheckBox1") as CheckBox);
if (e.Row.Cells[2].Text == "Absent")
{
CheckBox1.Enabled = false;
}
}
}