2015-04-27 1 views
0

Я использую два повторитель управляет одним, чтобы показать таблицы базы данных записей и один, чтобы показать пользовательские подкачки, что я разработал для отображения пейджинг, как 1 2 3 4 ...Page сообщение Вернуться проблема для Asp Repeater в панели Update

я сохранил оба элемента управления повторителя внутри панели обновления asp, когда я нажимаю номера подкачки, такие как 1 или 2 или 3, поэтому на странице отправляется назад, но есть некоторые другие кнопки внутри одной панели обновлений, и когда я нажимаю эти кнопки, страница не отправляет назад но я хочу остановить сообщение назад, когда я нажимаю любой номер страницы.

Просьба предложить то, что я могу сделать, чтобы остановить запись страницы назад, когда я нажимаю на номера пейджинговой

+0

поискового вызова в панели обновления или за пределами этого? –

+0

настроили любой условный режим на панели обновления? –

+0

пейджинговый ретранслятор находится в панели обновления также нет условного режима в панели обновления – user3331474

ответ

0

Вы можете применить обработчик щелчка к кнопкам, чтобы предотвратить действие по умолчанию. Что-то вроде:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $(".pagingButton").click(function (e) { 
      e.preventDefault(); 
     }); 
    }); 

</script> 
<asp:Button runat="server" ID="btnPage1" CssClass="pagingButton"/> 
<asp:Button runat="server" ID="btnPage2" CssClass="pagingButton"/> 
<asp:Button runat="server" ID="btnPage3" CssClass="pagingButton"/> 

http://api.jquery.com/event.preventdefault/

Надеется, что это помогает

0

Это мой пример, который работает без страницы postback .Please следовать этому примеру.

На странице aspx просто вставьте следующий код. ScriptManager используется для асинхронного поискового вызова.

Шаг 1:

<form id="form1" runat="server"> 
<asp:ScriptManager ID="MainScriptManager" runat="server" /> 
    <asp:UpdatePanel ID="pnlHelloWorld" runat="server">   
     <ContentTemplate> 
      <div> 
       <asp:Repeater ID="rptItems" runat="server">   
        <ItemTemplate>    
         <div> 
          <div> 
           <%# DataBinder.Eval(Container.DataItem,"Address") %> 
          </div> 
          <div> 
           <%# DataBinder.Eval(Container.DataItem, "ProductCategory")%> 
          </div> 
          <div> 
           <%# DataBinder.Eval(Container.DataItem, "BrandName")%> 
          </div> 
         </div> 
        </ItemTemplate> 
       </asp:Repeater> 
      </div> 
      <div> 
       <asp:LinkButton ID="lbPrev" runat="server" OnCommand="lbPrev_Command">Prev </asp:LinkButton> 
       <asp:Repeater ID="rptPages" runat="server" OnItemDataBound="rptPaging_ItemDataBound">  
        <ItemTemplate> 
         <div style="float:left;padding-left:10px;"> 
          <asp:LinkButton ID="btnPage" CommandName="Page" CommandArgument="<%#Container.DataItem %>" CssClass="text" runat="server"><%# Container.DataItem %> 
          </asp:LinkButton> 
         </div> 
        </ItemTemplate> 
       </asp:Repeater> 
       <asp:LinkButton ID="lbNext" runat="server" OnCommand="lbNext_Command">Next </asp:LinkButton> 
      </div> 
     </ContentTemplate> 
    </asp:UpdatePanel>  
</form> 

Шаг 2:

public static int totalPages = 0; 
public int PageNumber 
    { 
     get 
     { 
      if (ViewState["PageNumber"] != null) 
       return Convert.ToInt32(ViewState["PageNumber"]); 
      else 
       return 0; 
     } 
     set 
     { 
      ViewState["PageNumber"] = value; 
     } 
    } 

protected override void OnInit(EventArgs e) 
{ 
    base.OnInit(e); 
    rptPages.ItemCommand += new RepeaterCommandEventHandler(rptPages_ItemCommand); 
} 

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
     LoadData(); 
} 

private void LoadData() 
{ 
    SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["conTest"].ToString()); 
    cn.Open(); 
    SqlDataAdapter da = new SqlDataAdapter("select BrandName,ProductCategory,Address from Addresss", cn); //U can use your query here 
    DataTable dt = new DataTable(); 
    da.Fill(dt); 
    cn.Close(); 

    PagedDataSource pgitems = new PagedDataSource(); 
    DataView dv = new DataView(dt); 
    pgitems.DataSource = dv; 

    pgitems.AllowPaging = true; 
    pgitems.PageSize = 10; 
    pgitems.CurrentPageIndex = PageNumber; 
    totalPages = pgitems.PageCount - 1; 

    if (pgitems.PageCount > 1) 
    { 
     rptPages.Visible = true; 
     ArrayList pages = new ArrayList(); 
     for (int i = 0; i < pgitems.PageCount; i++) 
      pages.Add((i + 1).ToString()); 
     rptPages.DataSource = pages; 
     rptPages.DataBind(); 
    } 
    else 
     rptPages.Visible = false; 

    rptItems.DataSource = pgitems; 
    rptItems.DataBind(); 
} 

void rptPages_ItemCommand(object source, RepeaterCommandEventArgs e) 
{ 
    PageNumber = Convert.ToInt32(e.CommandArgument) - 1; 
    LoadData(); 
} 



protected void lbPrev_Command(Object sender, CommandEventArgs e) 
    { 
     if (PageNumber == 0) 
     { 
      PageNumber = 0; 
     } 
     else 
     { 
      PageNumber = PageNumber - 1; 
     } 
     LoadData(); 
    } 

protected void lbNext_Command(Object sender, CommandEventArgs e) 
{ 
    if (PageNumber == totalPages) 
    { 
     PageNumber = totalPages; 
    } 
    else 
    { 
     PageNumber = PageNumber + 1; 
    }   
    LoadData(); 
} 

для пейджинга

protected void rptPaging_ItemDataBound(object source, RepeaterItemEventArgs e) 
{ 
    LinkButton lnk = (LinkButton)e.Item.FindControl("btnPage"); 

    if (PageNumber > 0) 
    {    
     if (lnk.CommandArgument.ToString() == (PageNumber + 1).ToString()) 
     { 
      lnk.ForeColor = System.Drawing.Color.Red; 
      lnk.Font.Bold = true; 
      lnk.Attributes.CssStyle.Add("text-decoration", "none"); 
      lnk.Attributes.CssStyle.Add("pointer-events", "none"); 
     } 
     else 
     { 
      lnk.ForeColor = System.Drawing.Color.Black; 
     } 
    } 
    else if(lnk.CommandArgument.ToString() == "1") 
    { 
     lnk.Font.Bold = true; 
     lnk.Attributes.CssStyle.Add("text-decoration", "none"); 
     lnk.ForeColor = System.Drawing.Color.Red; 
     lnk.Attributes.CssStyle.Add("pointer-events", "none"); 
    } 
} 
+0

действительно хороший. это работает для меня. –