0

データページャーを使用して、リピーター コントロールにビデオ サムネイルを表示する作業を行っています。最近、リピーター コントロールの onitemcommand が、データページャーとバインドされると起動しないことを発見しましたが、リピーターのバインドからデータページャーを削除すると機能します。リピーターに特定の数のサムネイルを表示するためのページサイズ。datapager を使用してリピーターの onitemcommand を起動するにはどうすればよいですか?asp.net でこれを行うにはどうすればよいですか? 助けてください...ありがとう。

指令:

<%@ Register Assembly ="DataPagerRepeater" Namespace ="DataPagerRepeater" TagPrefix ="vid"  %>

DataPager を使用したリピーター コントロールの HTML ソース タグは次のとおりです。

<vid:DataPagerRepeater ID="Repeater1" runat="server" 
                        DataSourceID="SqlDataSource1" onitemcommand="Repeater1_ItemCommand">

                   <HeaderTemplate >
                   <table border ="0" style ="width :350px;" >
                   </HeaderTemplate>

                   <ItemTemplate >
                   <tr>
                   <td style ="border :0px; height :100px; width :350px">
                   <asp:ImageButton ID ="thumb" runat ="server"  style=" margin-right :5px" Width ="120px" Height ="75px" ImageAlign = "Left"  ImageUrl='<%#Eval("Filename","~/Thumbs/{0}") %>' />
                   <asp:Label ID="title" runat ="server"  Text ='<%#Eval("Title") %>' />
                   <br />
                   <asp:Label ID ="artist" runat ="server"  Text ='<%#Eval("Artist") %>' />
                   <br />
                    <asp:Label ID ="view" runat ="server"   Text ='<%#Eval("Views") %> '  />
                  <asp:Label ID ="Label3" runat ="server" Text =" Views" /> 
                    <br />
                   <%--  <asp:Label ID ="fname" runat ="server"  Text ='<%#Eval("VidFname") %>' /> --%>
                   <asp:TextBox ID ="fname" runat ="server"  Text ='<%#Eval("VidFname") %>' />
                     </td>

                      </tr>

                   </ItemTemplate>

                   <%--  
                   <AlternatingItemTemplate >
                   <tr>
                   <td style ="border :0px; height :100px; width :140px">
                    <asp:ImageButton ID ="thumb2" runat ="server" style=" margin-right :5px" Width ="120px" Height ="75px" ImageAlign ="Left" ImageUrl ='<%#Eval("Filename","~/Thumbs/{0}") %>' />
                   <asp:Label ID="title2" runat ="server" Text ='<%#Eval("Title") %>' />
                   <asp:Label ID ="artist2" runat ="server"  style="margin-left :20px" Text ='<%#Eval("Artist") %>' />
                   <asp:Label ID ="view2" runat ="server"  style="margin-left :20px" Text ='<%#Eval("Views") %> ' />
                  <!-- <asp:Label ID ="Label4" runat ="server" Text =" Views" /> -->

                   </td>

                      </tr>

                   </AlternatingItemTemplate>
                  --%>

                   <SeparatorTemplate >
                   <br />
                   </SeparatorTemplate>
                   <FooterTemplate >
                   </table>
                   </FooterTemplate>

</vid:DataPagerRepeater>


<asp:DataPager ID="DataPager1" runat="server" PagedControlID="Repeater1" PageSize="10">
                   <Fields>

          <asp:NextPreviousPagerField ButtonType="Link" ShowFirstPageButton="True" ShowNextPageButton="False" ShowPreviousPageButton="False" />

          <asp:NumericPagerField />

          <asp:NextPreviousPagerField ButtonType="Link" ShowLastPageButton="True" ShowNextPageButton="False" ShowPreviousPageButton="False" />

                 </Fields> 
        </asp:DataPager>
4

1 に答える 1

0

それは確かに働いています!ItemCommand を起動する Linkbutton を追加します。

<ItemTemplate >
    <tr>
        <td style ="border :0px; height :100px; width :350px">
        <asp:ImageButton ID ="thumb" runat ="server"  style=" margin-right :5px" Width ="120px" Height ="75px" ImageAlign = "Left"  ImageUrl='<%#Eval("Filename","~/Thumbs/{0}") %>' />
        <asp:LinkButton ID="LinkButton1" runat="server"
                            CommandName="cmd"
                            CommandArgument='<%# Eval("VidFname") %>' Text="TEST" />

コードでテストします。

protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
    if (e.CommandName == "cmd")
    {
        //set a break point in the next line
        string myString = e.CommandName;
    }
}

編集:画像ボタンはコマンド ボタンに似ており、リピーターの OnItemCommand の代わりに独自の OnCommand を起動するため、リピーターの OnItemCommand は起動しません。代わりに、画像付きのリンク ボタンを使用します。

    <asp:LinkButton ID="LinkButton1" runat="server"
                        CommandName="cmd"
                        CommandArgument='<%# Eval("VidFname") %>' >
            <img src="test.jpg" alt="my cmd" />TEST
    </asp:LinkButton> 
于 2013-10-27T21:24:01.187 に答える