2010-09-09 59 views
2

'/> 訪問的GridView hiddenfield

我要訪問的值的隱藏字段在我後面的代碼。我知道當物品受到綁定時我需要這樣做,但我似乎無法解決如何做到這一點。

protected void addLabelsWhereNeeded(object sender, EventArgs e) 
{ 

    // Get Value from hiddenfield 
} 

回答

0

是的,你是對的。您必須在ItemDateBound上執行此操作。檢查它必須努力

+0

如何!那就是爲什麼我問。我之前做過一箇中繼器,但我似乎無法在gridview中使用相同的屬性。我知道它沿着這些路線,但似乎無法獲得價值。 ((HiddenField)在線.....(hdField))值; – 2010-09-09 13:51:06

1

嘗試增加

OnRowDataBound="addLabelsWhereNeeded" 

到你的GridView。再抹上控制在相應的單元格設置爲HiddenField搶值:

protected void addLabelsWhereNeeded(object sender, GridViewRowEventArgs e) 
{ 
    HiddenField hf = e.Row.Cells[0].Controls[1] as HiddenField; 
    String theValue = hf.Value; 
} 

假設你定義你的GridView爲:

<asp:GridView runat="server" ID="gv" OnRowDataBound="addLabelsWhereNeeded"> 
    <Columns> 
     <asp:TemplateField> 
      <ItemTemplate> 
       <%--your hidden field--%> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

只要確保你的索引正確的細胞和正確在該單元內進行控制。

+0

對不起,我真的很笨。我之前沒有使用gridviews。我實際上試圖修改某人elses代碼。你能解釋一下'單元'號碼是什麼嗎? – 2010-09-09 14:26:05

+0

該號碼用作該行的單元格索引。假設你在GridView中定義了ColumnA,ColumnB和ColumnC。在你的代碼隱藏中,Cell [0]的索引應該是該行的ColumnA,而使用Cell [2]的索引應該是該行的ColumnC。 – Brissles 2010-09-09 14:44:35

0

在數據綁定的時候,我非常明白你想用這個私人領域實現什麼?在RowDataBound事件中,您可以訪問整個數據項,因此不需要使用隱藏值。

僞代碼:

protected void Grid1_RowDataBound(object sender, GridViewRowEventArgs) 
{ 
if(e.RowType == RowType.DataRow) 
{ 

} 
} 

設置斷點進入if語句,並使用快速監視,看你怎麼需要轉換當前必然要完全訪問所有屬性的DataItem,即使他們沒有綁定到任何控制。