2017-06-16 150 views
0

好的,这里是另一件事是目前我扼杀我,我似乎无法找到一个符合我的需要的答案。在aspx页面上,我有一个网格视图,它从SQL查询中获取数据并填充网格视图,该网格视图工作正常。在此网格视图中,尽管第一列(列0)具有从查询返回的行号。在返回的网格视图数据中可能有一行或10行或更多行。ASP.NET GridView链接到另一个GridView

我想要做的是添加一个超链接/ LinkBut​​ton/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 

获取引发错误说:“公众成员的类型‘的GridView’不‘的rowIndex’发现“

我还应该提到,第二个网格视图位于同一页面上的div标记中。我不想跳到另一个apsx页面。 (我可以做到这一点很好)

所以我需要的是弄清楚如何获取传递到代码后面的代码行数据以便我可以处理它。

任何人有任何想法?

在此先感谢您的帮助或意见。

回答

0

要获得您的行索引,您需要使用GridViewCommandEventArgs对象(e)。这里是一些代码来得到你需要的东西:

Convert.ToInt32(e.CommandArgument) 

此外,单元格(0)会给你的单元格包含你的linkbutton。因此,获取行号的行将如下所示:

Dim lineNumber As String = gvDetailSecondLevel.Rows(Convert.ToInt32(e.CommandArgument)).Cells(1).Text 
+0

而这应该在后面的代码的RowEditing子部分?因为我收到一个错误,指出公共覆盖重载只读属性单元格为TableCellCollection没有参数,并且它的返回类型不能建立索引。这使得我认为我使用错误的子? – mbcharney

+0

根据子名称(您没有包含句柄子句),我假定它发生在您的RowCommand事件中(当点击链接按钮时会触发它)。 – Wenadin

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传递给我的子,现在它工作得很好! 谢谢Wenadin的指针!

相关问题