【问题标题】:How to get clicked hyperlink row adjacent cell value from GridView in ASP.NET C#如何从 ASP.NET C# 中的 GridView 中获取单击的超链接行相邻单元格值
【发布时间】:2015-02-01 14:34:01
【问题描述】:

我正在使用 C# ASP.NET 处理我的一个项目。我在网络表单页面中有一个GridView,它正在从数据库中获取数据。它包含三列 CheckboxDeptIdDeptNameDeptNamehyperlink 字段中,我需要当用户单击 deptName 超链接时,其 DeptId 必须保存为字符串并传递给其他类所选部门的参数。我很困惑如何做到这一点!请帮帮我

我这样做了,但没有帮助

 protected void DepartmentTable_SelectedIndexChanged(object sender, EventArgs e)
 {
      string name = DepartmentTable.SelectedRow.Cells[0].Text.ToString();
      Departmentlist obj = new Departmentlist();
      obj.setDeptid(name);
 }

HTML 标记代码

<asp:GridView ID="DepartmentTable" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" BackColor="#CCCCCC" BorderColor="#999999" BorderStyle="Solid" BorderWidth="3px" CellPadding="4" DataSourceID="SqlDataSource1" Width="814px" CellSpacing="2" ForeColor="Black" DataKeyNames="DeptId" OnSelectedIndexChanged="DepartmentTable_SelectedIndexChanged">
                <Columns>
                    <asp:TemplateField>
                        <ItemTemplate>
                            <asp:CheckBox ID="CheckBox1" runat="server" />
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField DataField="DeptId" HeaderText="DeptId" SortExpression="DeptId" ReadOnly="True" InsertVisible="False" />
                    <asp:TemplateField HeaderText="DeptName">
                        <ItemTemplate>
                            <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("DeptId", "Departmentlist.aspx?DeptId={0}") %>' Text='<%# Eval("DeptName") %>'></asp:HyperLink>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
                <FooterStyle BackColor="#CCCCCC" />
                <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
                <PagerStyle ForeColor="Black" HorizontalAlign="Left" BackColor="#CCCCCC" />
                <RowStyle BackColor="White" />
                <SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
                <SortedAscendingCellStyle BackColor="#F1F1F1" />
                <SortedAscendingHeaderStyle BackColor="Gray" />
                <SortedDescendingCellStyle BackColor="#CAC9C9" />
                <SortedDescendingHeaderStyle BackColor="#383838" />
            </asp:GridView>

【问题讨论】:

  • 你能发布你的标记代码吗?
  • 是的,山姆检查一下,我已经添加了,请帮助我
  • 是否需要在 SelectedIndexChanged 事件中设置 Departmentlist obj?您已经将 DeptId 作为 QueryString 参数传递。为什么不能在 Departmentlist.aspx 页面的 Page_Load 事件中使用?

标签: c# asp.net gridview hyperlink


【解决方案1】:

您需要将控件转换为超链接并获取超链接控件的文本。比如:

字符串名称 = ((HyperLink)DepartmentTable.SelectedRow.Cells[0].Controls[0]).Text;

【讨论】:

  • Aaron 感谢您的回复,但 e.RowIndex 给出的错误是 System.EventArgs 确实包含 e.RowIndex 的定义并且没有扩展方法 'RowIndex' 可以找到接受 System.EventArgs 类型的第一个参数
  • 它是行命令事件的一部分。我认为这就是您使用的:msdn.microsoft.com/en-us/library/bb907626%28v=vs.100%29.aspx 尝试我刚刚进行的编辑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-08
  • 2017-12-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多