ListView внутри updatepanel вызывает полную обратную передачу - PullRequest
0 голосов
/ 01 января 2019

Когда я нажимаю на DataPager списка, полная страница обновляется, несмотря на то, что элемент управления находится на панели обновлений.Я ожидаю, что обновляется только представление списка.Вот код aspx, относящийся к проблеме.

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
      <ContentTemplate>

           <asp:ListView ID="lv"  runat="server" 
              ItemPlaceholderID="ItemPlaceHolder" 

              >
            <LayoutTemplate>
               <div class="container">
                   <div class="row">
                       <div runat="server" class="col-sm-4" id="ItemPlaceHolder"></div>
                   </div>
               </div>
                <asp:DataPager ID="lvDataPager" runat="server"
                    QueryStringField ="id"
                    PageSize="3">
                    <Fields>
                        <asp:NumericPagerField ButtonType="Button"/>
                    </Fields>
                </asp:DataPager>
             </LayoutTemplate>

              <ItemTemplate>
                <div class="col-sm-4"> 
                    Title: <%# Eval("title") %> <br />
                    Href: <%# Eval("href") %> <br />
                    Visited: <%# Eval("visited") %><br />

                </div>

              </ItemTemplate>


          </asp:ListView>
</ContentTemplate>    
    </asp:UpdatePanel>

Код: В событии загрузки страницы я создаю источник данных, который привязываю к ListView.

 protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack) return;
            DataTable dt = new DataTable();
            if (ViewState["data"] != null)
            {
                dt = (DataTable)ViewState["data"];
            }
            else
            {
                dt.Columns.Add("id");
                dt.Columns.Add("title");
                dt.Columns.Add("href");
                dt.Columns.Add("visited");
                dt.Rows.Add(0, "google", "http://www.google.com", false);
                dt.Rows.Add(1, "bing", "http://www.bing.com", false);
                dt.Rows.Add(2, "yahoo", "http://www.yahoo.com", false);
                for (int i = 3; i <= 30; i++)
                {
                  dt.Rows.Add(i, "mywebsite", "http://www.mywebsite.com", false);
                }
                ViewState["data"] = dt;

            }

            BindLV();
}

private void BindLV()
        {
            DataTable dt = (DataTable)ViewState["data"];
            lv.DataSource = dt;
            lv.DataBind();
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...