asp.net - 获取gridview中的列索引值

标签 asp.net gridview

我在 asp.net 中有一个 gridview,并且在表中我有两列。 现在,我必须在按钮单击时以 dllDesc 和 txtBoxDesc 字段警报的形式逐行显示列索引值。

<asp:GridView ID="gvCar" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" AutoGenerateColumns="False" DataKeyNames="LevelID" OnRowDataBound="gvCar_RowDataBound">
            <AlternatingRowStyle BackColor="White" />
            <Columns>
                <asp:TemplateField HeaderText="Car">
                    <ItemTemplate>
                        <asp:Label ID="Car" runat="server" Width="150px" Height="30px" Font-Names="Georgia" MyCustomAttr="foo" margin-Left="100px" Text='<%# Bind("CharName") %>'></asp:Label>


                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="Description">
                    <ItemTemplate>

                         <asp:DropDownList ID="ddlDesc" Width="142px" Height="35px" Font-Names="Georgia" margin-Left="100px" runat="server">
                         </asp:DropDownList>

                        <asp:TextBox ID="txtBoxDesc" runat="server" Width="130px" Height="28px" Font-Names="Georgia" margin-Left="100px" Text=''></asp:TextBox>

                    </ItemTemplate>
                </asp:TemplateField>

            </Columns>

        </asp:GridView> 
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />

我设法获取行的值(下面的代码),但我找不到一种方法来显示列的值。

protected void Button1_Click(object sender, EventArgs e)
{
    foreach (GridViewRow gvr in gvCar.Rows)
    {
        string PrimaryKey = gvCar.DataKeys[gvr.RowIndex].Values[0].ToString();
        MessageBox.Show(PrimaryKey);
    }
}

有人可以帮我吗?

最佳答案

只需在 GridView 上像这样绑定(bind)它,不需要做任何其他事情

 <asp:TemplateField HeaderText="No.">
         <ItemTemplate>
             <%# Container.DataItemIndex + 1 %>
           </ItemTemplate>
 </asp:TemplateField>

编辑更新2

只需添加选定的索引更改事件

<asp:GridView ID="gvCar" runat="server" OnSelectedIndexChanged="gvCar_SelectedIndexChanged">

在你的cs文件中

protected void gvCar_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
               string a  = gvCar.SelectedRow.Cells[0].Text; //Write here that cell index  of index  no             
            }
            catch (Exception ex)
            {
            }
        }

如果您想通过行命令执行此操作,请打开以下链接

Row command example

这对你有用

关于asp.net - 获取gridview中的列索引值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50405003/

相关文章:

asp.net - 我需要处理/关闭 XDocument.Load(string) 吗?

javascript - Gridview 行为空或不是对象

c# - 如何从 asp.net 中的 gridview 中的 Ajax fileupload 控件获取文件名。 (记住它的 ajax fileupload 控件)

c# - 如何在 asp.net 应用程序中实现编辑功能?

c# - 在 itemTemplate 中查找标签并从后面的代码绑定(bind)数据

c# - LINQ to Entity Framework 多重连接与多个动态搜索条件

asp.net - Application_EndRequest找不到 session

c# - 根据某些符号的子字符串

c# - 解析器错误消息 : Could not load type

c# - 如何使用 Javascript 更改 ASP.NET Gridview 的 cssClass?