1

ieFindControlの値を見つけるために使用したい。上の値を見つけたいHiddenFieldhfBlogIDButtonClick

<asp:ListView ID="lvArticle" runat="server">
    <LayoutTemplate>
        <div runat="server" id="itemPlaceHolder">
        </div>
    </LayoutTemplate>
    <ItemTemplate>
        <asp:HiddenField ID="hfBlogID" Value='<%#Eval("BlogID")%>' runat="server" />
        <p>
            <%#Eval("BlogTitle")%></p>
        <p>
            <%#Eval("BlogDetails")%></p>
    </ItemTemplate>
</asp:ListView>
4

4 に答える 4

3

正しい行インデックスを決定するには、ボタンを内部に配置してイベントListView.ItemTemplateを処理する必要があります。ListView.ItemCommand

このアプローチを実装するには、コードを次のように変更する必要があります。

<asp:ListView ID="lvArticle" runat="server" OnItemCommand="lv_ItemCommand">
..
    <ItemTemplate>
        <asp:HiddenField ID="hfBlogID" Value='<%#Eval("BlogID")%>' runat="server" />
        <p>
            <%#Eval("BlogTitle")%></p>
        <p>
            <%#Eval("BlogDetails")%></p>
        <asp:Button runat="server" CommandName="find" CommandArgument='<%# Eval("yourIDField") %>' />
    </ItemTemplate>
...

コードビハインド:

protected void lv_ItemCommand(object sender, ListViewCommandEventArgs e)
{
    switch (e.CommandName)
    {
        case "find":
            var hidden = e.Item.FindControl("your hidden id") as HiddenField;
            break;
    }
}

ボタンが ListView 内にない場合は、非表示の値を抽出する行を識別する方法が必要になります。

たとえば、行を選択できるようにすると、次のように選択した行ListViewから非表示の値を取得できます。

protected void find_Click(object sender, EventArgs e)
{
    var hidden = this.lv.Items[this.lv.SelectedIndex].FindControl("your hidden ID") as HiddenField;
}
于 2012-07-27T09:01:54.327 に答える
0

ここで、各アイテムの非表示フィールドにアクセスできます。

protected void Button1_Click(object sender,EventArgs e)
{
  foreach(ListViewDataItem item in lvArticle.Items)
   {
     HiddenField hf=(HiddenField)item.FindControl("hfBlogID");
   }

}

アイテムのインデックスが既にある場合は、このように直接取得できます

 HiddenField hf=(HiddenField)lvArticle.Items[index].FindControl("hfBlogID");

これが役立つことを願っています..

于 2012-07-27T09:10:34.023 に答える
0

ボタンがリストビューにある場合に使用できます

var control = (HiddenField)e.Item.FindControl("hfBlogID");

またはボタンがリストビューにない場合

 var contorl = (HiddenField)this.lvArticle.Items[this.lvArticle.SelectedIndex].FindControl("hfBlogID");
于 2012-07-27T08:58:33.300 に答える
0

ボタンが同じ項目テンプレートにある場合は、ItemCommand イベント ハンドラーを使用し、そのハンドラーで隠しフィールドを直接取得できます。

ボタンがリスト ビューの外にある場合は、隠しフィールドの値を取得する項目のインデックスを取得する必要があります。

于 2012-07-27T09:02:17.307 に答える