3

リピーター コントロールを使用して、行と列が少ないテーブルを作成しています。Repeater_ItemCommand で、コード ビハインドでクリックされた行を選択し、セッションに保存します。これを行うにはどうすればよいですか?

行をクリックすると、e.Item.DataItem が NULL になります。<%# DataBinder.Eval(Container.DataItem, "FILE_NAME")%> を使用して asp.net で値をバインドしています

LINQを使用できません。

ありがとうヴェド

4

3 に答える 3

0

リピーターについて私が知っていることから、そのように使用することは想定されていません。GridView と TemplateField を使用しないのはなぜですか?

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"                 
            DataKeyNames="KeyColumnName"   
            DataSourceID="SqlDataSource1">  
            <Columns>  
                <asp:TemplateField>
                     ...Same template as in repater...
                </asp:TemplateField>
            </Columns>  
        </asp:GridView> 
于 2012-09-06T20:27:28.320 に答える
0

Buttons'/LinkBut​​tons'/etc を使用できます。CommandArgument フィールド。

<table>
    <asp:Repeater ID="someRepeater" OnItemCommand="someRepeater_ItemCommand" runat="server">
        <HeaderTemplate>
            <tr><th>
                File Name Header
            </th></tr>                                    
        </HeaderTemplate>
        <ItemTemplate>
            <tr><td>
                <asp:LinkButton Text="File Name Item" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "FILE_NAME")%>' Style="display: block" runat="server" />
            </td></tr>
        </ItemTemplate>
    </asp:Repeater>
</table>

コードビハインド:

protected void someRepeater_ItemCommand(object Sender, RepeaterCommandEventArgs e)
{
    Session["FILE_NAME"] = e.CommandArgument; //Here you have your FILE_NAME
}

もちろん、これはサンプルコードです。

于 2012-09-06T20:37:24.660 に答える