1

設計時にグリッドビューを作成する場合、次のようなテンプレート列を作成できます。

<asp:TemplateField>
     <ItemTemplate>
          <asp:Label runat="server" ID="Label1"></asp:Label>
     </ItemTemplate>
</asp:TemplateField>

また、HTMLでは、次のような一意の名前が付けられます。

<span id="gvSelect_ctl02_Label1">blahblah</span>

そして、コードビハインドでこのラベルを参照できます。

CType(e.Row.FindControl("Label1"), Label)

これは完璧です。しかし、TemplateFieldsを動的に作成しているときに、これを行う方法がわかりません。「InstantiateIn」に次のコードがあります。

Dim hl As New HiddenField
hl.ID = "hHidden"
hl.Value = 0
AddHandler hl.DataBinding, AddressOf Me.hl_DataBinding
container.Controls.Add(hl)

そして、これは各行にhHiddenとしてIDを持つ隠しコントロールを作成します。ただし、「gvSelect_ctl02_hHidden」のような一意のIDは付与されず、単に「hHidden」になります。そして、自分で行番号を追加する方法があることを私は知っています。しかし、これを自動的に行う方法があるかどうか疑問に思いました。そして、それでも私が次のように隠しフィールドを参照できるようにします:

CType(e.Row.FindControl("hHidden"), HiddenField)
4

1 に答える 1

0

うーん..私自身の質問に対する別の答え。RowCreatedで名前を探していました。RowDataBoundイベントで探していたはずです。

それは今動作します..今私はそれを正しくやっています。

(私は一度に外出先であまりにも多くのものを持っているかもしれません..):S

于 2010-02-03T16:29:11.963 に答える