2017-06-16 90 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的指針!

相關問題