c# - GridView - 选择第一行不起作用
问题描述
我对 gridview 有严重问题并选择一行的复选框。
我在标签中得到正确的文本,但是如果我从第一行中选择复选框:
我明白了:房间不挑
按钮点击
protected void bookButton_Click(object sender, EventArgs e) {
foreach (GridViewRow row in GridView1.Rows)
{
var chk = (HtmlInputCheckBox) row.FindControl("checkboxID");
int id_room = Convert.ToInt32(row.Cells[4].Text);
if (chk.Checked)
{
Label1.Text = id_room.ToString();
/*
String CS = ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString;
using (SqlConnection con = new SqlConnection(CS))
{
//STORED PROCEDURE CALL
}
}
else
{
Label1.Text ="Room not pick";
}
*/
}
}
和网格视图
<asp:GridView ID="GridView1" runat="server" CssClass="table border-0 table-hover" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" GridLines="None" BorderWidth="0px">
<Columns>
<asp:BoundField DataField="Number" HeaderText="Number" SortExpression="Number" />
<asp:BoundField DataField="Picture" HeaderText="Picture" SortExpression="Picture" />
<asp:BoundField DataField="Price" HeaderText="Price" SortExpression="Price" />
<asp:BoundField DataField="ID" HeaderText="IDP" SortExpression="ID" />
<asp:TemplateField>
<ItemTemplate>
<input type="checkbox" CssClass="custom-checkbox" ID="checkboxID" runat="server" />
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
</Columns>
</asp:GridView>
解决方案
索引错误。它的第 4 列。作为一个基于零的索引,您应该使用 3
int id_room = Convert.ToInt32(row.Cells[3].Text);
一种更清洁的方法是使用ItemTemplate
<asp:TemplateField HeaderText="IDP" SortExpression="ID">
<ItemTemplate>
<asp:Label ID="roomID" runat="server" />
</ItemTemplate>
</asp:TemplateField>
并像访问它一样
foreach(GridViewRow row in GridView1.Rows) {
var chk = (HtmlInputCheckBox)row.FindControl("checkboxID");
var selectedRoomID = (Label)row.FindControl("roomID");
if (chk.Checked) {
Label1.Text = selectedRoomID.Text;
}
}
推荐阅读
- flutter - Flutter:如何使用 sharedPreferences 设置 Switch 的状态
- html - 动画取决于屏幕的宽度和高度
- angular - 我们在 mat-tooltip 中没有动态内容的选项吗?
- javascript - 无法通过 document.getElementById 找到一个元素,即使它应该在那里
- bash - 如何在 bash 中轮换变量列表,以便每次运行脚本时,它都会选择下一个变量?
- javascript - 如何使用 JS 忽略以点开头的文件名?
- php - 更改 Symfony 项目的供应商目录路径
- ionic-framework - 在 linux mint 中安装 ionic 时出错
- javascript - javascript数组从数组中找到相同的值及其计数
- tableau-api - 如何在 Tableau 中调整蝴蝶图中的中心轴宽度