3

バッチインライン編集を行うリストビューを無効/有効にするボタン (Bearbeitung_Click) があります。これは、常に編集可能であるとは限らないためです。LayoutTemplate の DataPager を常に有効にして、編集が無効になっている場合でもユーザーがページを閲覧できるようにします。

データページャーを含むテンプレートの .aspx コードは次のとおりです。

 <LayoutTemplate>
            <table runat="server">
                <tr runat="server">
                    <td runat="server">
                        <table ID="itemPlaceholderContainer" runat="server" border="1" 
                            style="background-color: #FFFFFF;border-collapse: collapse;border-color: #999999;border-style:none;border-width:1px;font-family: Verdana, Arial, Helvetica, sans-serif;">
                            <tr runat="server" style="background-color: #E0FFFF;color: #333333; font-size:smaller;">
                                <th runat="server">
                                    </th>
                                <th runat="server">
                                    Example</th>
                                <th runat="server">
                                    Example</th>
                                <th runat="server">
                                    Example</th>
                                <th runat="server">
                                    Example</th>
                                <th runat="server">
                                    Example</th>
                                <th runat="server">
                                    Example</th>
                                <th runat="server">
                                    Example</th>
                                <th runat="server">
                                    Example</th>
                                <th runat="server">
                                    Example</th>
                                <th runat="server">
                                    Example</th>
                                <th runat="server">
                                    Example</th>
                                <th runat="server">
                                    Example</th>
                                <th runat="server">
                                    Example</th>
                                <th runat="server">
                                    Example</th>
                            </tr>
                            <tr ID="itemPlaceholder" runat="server">
                            </tr>
                        </table>
                    </td>
                </tr>
                <tr runat="server">
                    <td runat="server" 
                        style="text-align: center;background-color: #5D7B9D;font-family: Verdana, Arial, Helvetica, sans-serif;color: #FFFFFF">
                        <asp:DataPager ID="DataPager1" runat="server" Enabled="true">
                            <Fields>
                                <asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True" 
                                    ShowNextPageButton="False" ShowPreviousPageButton="False" />
                                <asp:NumericPagerField />
                                <asp:NextPreviousPagerField ButtonType="Button" ShowLastPageButton="True" 
                                    ShowNextPageButton="False" ShowPreviousPageButton="False" />
                            </Fields>
                        </asp:DataPager>

                    </td>
                </tr>
            </table>
        </LayoutTemplate>

ボタンのコードビハインドとページサイズの変更は次のとおりです。

    protected void PageSize_Changed(object sender, EventArgs e)
    {
        DataPager pager = ListView1.FindControl("DataPager1") as DataPager;
        if (string.IsNullOrEmpty(tb_page.Text) || tb_page.Text == "0")
        {
            label.Text = "Number required";
        }
        else
        {
            /*pager.PageSize = Convert.ToInt32(page_size_dropdown.SelectedValue);*/
            pager.PageSize = Convert.ToInt32(tb_page.Text);
            label.Text = "";
        }
    }

    protected void Bearbeitung_Click(object sender, EventArgs e)
    {
        DataPager pager = ListView1.FindControl("DataPager1") as DataPager;

        if (ListView1.Enabled == true)
        {
            ListView1.Enabled = false;
            cmdUpdate.Enabled = false;
            btn_Bearbeitung.Text = "Bearbeitung";
            cmdDelete.Enabled = false;
            LinqDataSource1.DataBind();
            ListView1.DataBind();
        }
        else
        {
            ListView1.Enabled = true;
            cmdUpdate.Enabled = true;
            cmdDelete.Enabled = true;
            btn_Bearbeitung.Text = "Disable Editing"; 
        }
    }

Datapager.Enabled = true; を試しました。およびこれのバリエーションですが、成功しませんでした。有効なプロパティがないようです。

4

1 に答える 1

1

解決策を見つけました。リストビューから Datapager を取り出し、PagedControlID="IdOfListView" を使用しました。これは、リストビューが無効になっていてもデータページャーに影響がなかったため、完全に機能していたことを意味します。

于 2012-12-12T13:36:47.883 に答える