0

私はこのようなデザインを持っていましたが、これはユーザーコントロールにあります

<table>
    <tr>
        <td>
            <asp:DataList ID="dlimgShowCase" runat="server" RepeatDirection="Horizontal" EnableViewState="true">
                <ItemTemplate>
                    <asp:Image ID="imgCatalog" runat="server" Height="292" Width="454" ImageUrl='<%# Eval("path") %>' />
                </ItemTemplate>
            </asp:DataList>
        </td>
    </tr>
    <tr>
        <td>
            <asp:DataList ID="dlPaging" runat="server" class="more_pages_navigation" RepeatDirection="Horizontal"
                Width="100" OnItemCommand="dlPaging_ItemCommand" OnItemDataBound="dlPaging_ItemDataBound"
                EnableViewState="true">
                <ItemTemplate>
                    <li>
                        <asp:LinkButton ID="lnkbtnPaging" runat="server" CommandArgument='<%# Eval("PageIndex") %>'
                            CommandName="Paging" Text='<%# Eval("PageText") %>' Style="text-align: center"
                            OnClick="lnkbtnPaging_Click">   </asp:LinkButton>
                    </li>
                </ItemTemplate>
            </asp:DataList>
        </td>
    </tr>
</table>

私のC#コードは

 if (!IsPostBack)
        {
            BindDataItems();              
        }    



 /// <summary>
    /// Binding Images List
    /// </summary>
    private void BindDataItems()
    {
        // If the DataSource Tables are greater than 1            
        try
        {

            if (Cache["DataShowcaseImages"] == null)
                Cache["DataShowcaseImages"] = DataSource.Tables[0];

            objPagedDataSourceCatalogList.DataSource = ((DataTable)(Cache["DataShowcaseImages"])).DefaultView;
            objPagedDataSourceCatalogList.AllowPaging = true;
            objPagedDataSourceCatalogList.PageSize = PageSize;
            objPagedDataSourceCatalogList.CurrentPageIndex = CurrentPage;
            ViewState["TotalPages"] = objPagedDataSourceCatalogList.PageCount;
            dlimgShowCase.DataSource = objPagedDataSourceCatalogList;
            dlimgShowCase.DataBind();
            performPaging();  // This method bind my second grid,, with page numbers
        }
        catch (Exception)
        {

            throw;
        }


    }

そして私のページングitemcommandイベントは

 protected void dlPaging_ItemCommand(object source, DataListCommandEventArgs e)
    {
        if (e.CommandName.Equals("Paging"))
        {
            CurrentPage = Convert.ToInt16(e.CommandArgument.ToString());
            BindDataItems();
        }
    }

しかし、なぜアイテムコマンドイベントが発生しないのかわかりませんか?誰かがこれで私を助けることができますか?

4

1 に答える 1

1

おそらく、実際DataSourceDataListに割り当てていないので、代わりに次のコードを使用してください。

objPagedDataSourceCatalogList.DataSource = ((DataTable)(Cache["DataShowcaseImages"])).DefaultView;
objPagedDataSourceCatalogList.AllowPaging = true;
objPagedDataSourceCatalogList.PageSize = PageSize;
objPagedDataSourceCatalogList.CurrentPageIndex = CurrentPage;
ViewState["TotalPages"] = objPagedDataSourceCatalogList.PageCount;
dlimgShowCase.DataSource = objPagedDataSourceCatalogList.DataSource;
dlimgShowCase.DataBind();
于 2012-11-23T07:01:44.367 に答える