请教一个gridview 数据绑定和隐藏列的问题

dabuyingyeyaoda 2013-05-24 10:00:25
我数据库使用access,表中主键为递增的record_id

我直接将record_id绑定gridview上显示出来了。

record_id 代表着记录号,如果查询等操作显示出来不为1开头,也不连续。

现在的要求是 gridview显示的数据序列号连续(1开始,递增)record_id 不显示。

但是查出来的记录还有后续操作,在每个row的末尾有按钮,操作的时候我需要取这个记录号。

我将record_id 设为隐藏以后,发现gridview.rows(e.CommandArgument).Cells(0).Text 取不出来,估计是隐藏了不绑定了,该怎么办?求大神指教。
...全文
118 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dabuyingyeyaoda 2013-05-26
  • 打赏
  • 举报
回复
后来我使用了 DataKeyNames 来实现了。

<asp:GridView ID="gridDriverInfoList" runat="server" AutoGenerateColumns="False" DataKeyNames = "record_id"
                        AllowPaging="True" PageSize="8" Width="100%" >
                        <Columns>
                            <%--<asp:BoundField HeaderText="序号" DataField="record_id" />--%>
                            <asp:TemplateField ShowHeader="False" HeaderText= "序号">
                                    <ItemTemplate>
                                    <asp:Label ID="labID" runat="server" Text = '<%#Container.dataitemindex +1 %>'></asp:Label> 
                                    </ItemTemplate>
                                </asp:TemplateField>
                            <asp:BoundField HeaderText="登录名" DataField="driver_employee_id" />
                            <asp:ButtonField HeaderText="姓名" CommandName="DriverInfo" DataTextField="driver_employee_name" />
                        </Columns>
                    </asp:GridView>
后台文件里使用

Dim recordid As String = gridDriverInfoList.DataKeys(rowIndex).Value 
同样感谢 banian_cn 给的答案。
Banianer 2013-05-25
  • 打赏
  • 举报
回复
不知道你具体取值是做什么用的,取ID有很多种方法可以实现的。 比如用 DataKeyNames
Banianer 2013-05-25
  • 打赏
  • 举报
回复
Visible = "false" 能取到的,你看看是不是你数据绑定有问题。 很久不用gridview这种控件了。 以前用都是隐藏ID字段的。 这个是在gridview中加上 onrowcreated 事件,在这个事件中隐藏列(我需要隐藏的是GUID的列)。
 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" onrowcreated="GridView1_RowCreated" 
            >
            <Columns>
                <asp:BoundField DataField="zcbm" HeaderText="资产编码" />
                <asp:BoundField DataField="zcmc" HeaderText="资产名称" />
                <asp:BoundField DataField="ggxh" HeaderText="规格型号" />
                <asp:BoundField DataField="jszk" HeaderText="技术状况" />
                <asp:BoundField DataField="guid" HeaderText="guid" >
                </asp:BoundField>
            </Columns>
        </asp:GridView>
onrowcreated 事件:
 protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
    {
        e.Row.Cells[4].Visible = false;//guid列的隐藏
    }
直接取隐藏列guid的值。 string guid = GridView1.Rows[0].Cells[4].Text;
dabuyingyeyaoda 2013-05-25
  • 打赏
  • 举报
回复
Visible = "false" 的列(比如第一列) 取gridview.rows[index].cells[0].text 取出来的是"" 空
Banianer 2013-05-25
  • 打赏
  • 举报
回复
隐藏了是可以取的 gridview.rows[index].cells[index].text

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧