好的,这是另一件事,目前正在困扰我,我似乎找不到符合我需要的答案。在aspx页面上,我有一个网格视图,它从SQL查询中获取数据并填充网格视图,该视图工作正常。在此网格视图上,尽管第一列(第0列)具有从查询返回的行号。返回的网格视图数据中可能有一行或10行或更多行。
我要做的是在行号前面的列中添加一个超链接/ LinkButton / Button(不确定是哪个)到网格视图。我目前有一个带有asp链接按钮的TemplateField,我可以看到它。
我似乎无法弄明白,而且我一直在寻找几天,是如何用行号拉单元格传递给我的代码(VB.NET)来它运行一个辅助查询,该查询将使用行项目详细信息填充另一个网格视图。
以下是我目前如何设置gridview的方法:
<asp:GridView ID="gvDetailSecondLevel" runat="server" AutoGenerateColumns="false" Width="1010px" CellPadding="4" ForeColor="#333333" GridLines="Horizontal" CssClass="SecLvlDtl" OnRowCommand="gvDetailSecondLevel_RowCommand">
<Columns>
<asp:TemplateField ItemStyle-VerticalAlign="Middle">
<ItemTemplate>
<asp:LinkButton ID="btnLineDetail" runat="server" CssClass="dtlButtons" CommandName="Edit" Text="Line Detail" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Line #" HeaderText="Line #" />
<asp:BoundField DataField="Part Desc" HeaderText="Part Description" />
<asp:BoundField DataField="PCS" HeaderText="PCS" />
<asp:BoundField DataField="WT" HeaderText="WT" />
<asp:BoundField DataField="SF" HeaderText="SF" />
</Columns>
网格视图的其余部分是格式化的,所以为了简洁,我没有列出它。
背后的当前代码(我肯定是错误的,因为它会抛出错误)如下:
Protected Sub gvDetailSecondLevel_RowCommand(sender As Object, e As GridViewCommandEventArgs)
'Setup Variables
Dim lineNumber As String = gvDetailSecondLevel.Rows(sender.RowIndex).Cells(0).Text
'Make controls visibile
btnClear.Visible = True
SOThirdLevel.Visible = True
'Retrieve Thrid Level SQL Data
bindThirdLevel(lineNumber)
End Sub
被抛出的错误表示&#34;公共成员&#39; RowIndex&#39;在类型&#39; GridView&#39;找不到&#34;
我还应该提到第二个网格视图位于同一页面上的div标签中。我不是想跳到另一个apsx页面。 (我能做到这一点很好)
所以我需要弄清楚如何将行号单元数据传递给后面的代码,以便我可以处理它。
有人有任何想法吗?
提前感谢任何帮助或想法。
答案 0 :(得分:0)
要获取行索引,需要使用GridViewCommandEventArgs对象(e)。以下是一些可以满足您需求的代码:
Convert.ToInt32(e.CommandArgument)
此外,单元格(0)将为您提供包含链接按钮的单元格。因此,获取行号的行将如下所示:
Dim lineNumber As String = gvDetailSecondLevel.Rows(Convert.ToInt32(e.CommandArgument)).Cells(1).Text
答案 1 :(得分:0)
这就是我最终让它发挥作用的方式。
'Get RowIndex
Dim rowIndex As Integer = Convert.ToInt32(e.CommandArgument)
'Reference Grid View Row
Dim row As GridViewRow = gvDetailSecondLevel.Rows(rowIndex)
'Get Cell value
Dim lineNumber As String = row.Cells(1).Text
然后我能够将变量lineNumber传递给我的sub,它现在运行得很好! 感谢Wenadin的指针!