مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

علی 021

عضویت از 1392/11/13

مشکل در هنگام paging که data key خالی می شود

  • دوشنبه 29 آذر 1395
  • 22:32
تشکر میکنم

با سلام و عرض خسته نباشید

مشکلی دارم و اونم اینه که هنگامی که page عوض میشه data key خالی میشه و ارور index was out of range must be non negative and ... رو میده . اگه کسی راهنماییم کنه ممنون میشم

کد html : 

<%@ Page Title="" Language="C#" MasterPageFile="~/Fa/SiteMasterPage.Master" AutoEventWireup="true" CodeBehind="FAQ.aspx.cs" Inherits="FaraSanaatProject.Fa.FAQ.FAQ" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<form runat="server">
    <div class="master-wrapper">
        <!--  ==========  -->
        <!--  = Breadcrumbs =  -->
        <!--  ==========  -->
        <div class="darker-stripe">
            <div class="container">
                <div class="row">
                    <div class="span12">
                        <ul class="breadcrumb">
                            <li>
                                <a href="../../../../../../../../../../Fa/"> فراصنعت &nbsp;</a>
                            </li>
                            <li><span class="icon-chevron-left" style="font-size:8px;">&nbsp;</span></li>
                            <li>
                                <a href="#"> سوالات متداول </a>
                            </li>
                        </ul>
                    </div>
                </div>
            </div>
         </div>
        <div class="container">
            <div class="push-up top-equal blocks-spacer">
                <div class="row">
                    <!--  ==========  -->
                    <!--  = Main Title =  -->
                    <!--  ==========  -->
                        <div class="span12">
                            <div class="title-area">
                                <h1 class="inline"><span class="light">سخت افزار</span></h1>
                                <h2 class="inline tagline" style="font-style:normal;">- سوالات متداول در زمینه سخت افزار </h2>
                            </div>
                        </div>
                        <!--  ==========  -->
                        <!--  = Main content =  -->
                        <!--  ==========  -->
                        <section class="span8 blog">
                            <!--  = Simple Post =  -->
                            <!--  ==========  -->
                            <asp:DataList ID="dListItems" runat="server" RepeatDirection="Vertical" RepeatColumns="2" DataKeyField="FAQId" OnItemCommand="dListItems_ItemCommand"  >
                                <ItemTemplate >
                                        <article class="post format-standard">
                                            <div class="post-inner">
                                                <div class="post-title">
                            	                    <h2><a href="#"><span class="light"> <%#Eval("FAQTitle") %> </span></a></h2>
                            	                    <div class="metadata">
                                                        نوشته شده توسط : <%#Eval("UserWirter") %> /
                            	                        <%#Eval("FAQRegPersianDate") %> 
                            	                    </div>
                                                </div>
                                                <p class="push-down-25"><%#Eval("FAQShortDescription") %></p>
                                                <asp:LinkButton ID="LinkBtnDetails" runat="server" CssClass="btn btn-primary bold" CommandArgument='<%#Eval("RowIndex") %>' CommandName="btnDetails" >ادامه مطلب</asp:LinkButton>
                                            </div>
                                        </article>
                                </ItemTemplate>
                             </asp:DataList>
                             <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
                            <hr />
                            <div class="pagination">
                                <style>
                                    .btnPageNumber {
                                        padding:3px 10px;
                                        font-weight:bold;
                                        font-size:14px;
                                        cursor:pointer;
                                        color:#fff;
                                        background:#00becc;
                                        border:1px solid transparent;
                                    }
                                </style>
                              <ul>
                                  <li><asp:Button ID="btnfirst" runat="server" Text="<<"  onclick="btnfirst_Click" CssClass="btnPageNumber" /></li>
                                  <li><asp:Button ID="btnprevious" runat="server" Text="قبلی"  onclick="btnprevious_Click" CssClass="btnPageNumber" /></li>
                                  <li><asp:Button ID="btnnext" runat="server" Text="بعدی" onclick="btnnext_Click" CssClass="btnPageNumber" /></li>
                                  <li><asp:Button ID="btnlast" runat="server" Text=">>" onclick="btnlast_Click" CssClass="btnPageNumber" /></li>
                              </ul>
                             </div> <!-- /pagination -->
                    
                        </section> <!-- /main content -->

                    <!--  ==========  -->
                    <!--  = Sidebar =  -->
                    <!--  ==========  -->
                    <aside class="span4 right-sidebar">
                        <!--  ==========  -->
                        <!--  = Search Widget =  -->
                        <!--  ==========  -->
                            <div class="sidebar-item widget_search">
                                <!-- <div class="underlined">
                                    <h3><span class="light">Search</span></h3>
                                </div> -->
                                <div class="form" id="searchform" role="search">
                                    <input type="text" id="appendedInputButton" class="input-block-level" name="s" placeholder=" جستجو در سوالات .... " />
                                    <button type="submit">
                                        <i class="icon-search"></i>
                                    </button>
                                </div>
                            </div>
                    </aside> <!-- /sidebar --> 
                </div>
            </div>
        </div> <!-- /container -->
    </div> <!-- end of master-wrapper -->
</form>
</asp:Content>



کد C#

using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace FaraSanaatProject.Fa.FAQ
{
    public partial class FAQ : System.Web.UI.Page
    {
        DataSet Dset;
        static PagedDataSource AdSource;
        int Pos;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                this.ViewState["vs"] = 0;
            }
            Pos = (int)this.ViewState["vs"];
            _dataBind();
        }
        public void _dataBind()
        {
            try
            {
                AdSource = new PagedDataSource();
                AppCode.SQLConnection SQL_Read = new AppCode.SQLConnection();
                NameValueCollection NVC_Read = new NameValueCollection();
                DataSet ds = new DataSet();
                AppCode.SQLConnection._DBReaderWithDataSetWithStoreProcedure("sp_Main_AllFaqSelect", NVC_Read, ref ds);
                if (ds.Tables.Count == 0 || ds.Tables.Count < 0)
                {
                    //DivMesseage.InnerHtml = AppCode.Functions._ShowMessage(" توجه ", " هیچ اطلاعاتی یافت نشد ");
                    //RunMesseageBox();
                    return;
                }
                else
                {
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        AdSource.DataSource = ds.Tables[0].DefaultView;
                        AdSource.PageSize = 1;
                        AdSource.AllowPaging = true;
                        AdSource.CurrentPageIndex = Pos;
                        btnfirst.Enabled = !AdSource.IsFirstPage;
                        btnprevious.Enabled = !AdSource.IsFirstPage;
                        btnlast.Enabled = !AdSource.IsLastPage;
                        btnnext.Enabled = !AdSource.IsLastPage;
                        dListItems.DataSource = AdSource;
                        dListItems.DataBind();

                        //dListItems.DataSource = ds.Tables[0];
                        //dListItems.DataBind();
                    }
                    else
                    {
                        dListItems.DataSource = ds.Tables[""];
                        dListItems.DataBind();
                        // Divmsg.InnerHtml = AppCode.Function._ShowMessage("توجه", AppCode.Message._DivWarning("هیچ اطلاعاتی یافت نشد"));
                        return;
                    }
                }
            }
            catch (Exception ex)
            {
                //AppCode.Function._RunJavaScript("alert('خطا 001 :" + ex.Message + "')");
                //return;
            }
        }

        protected void btnfirst_Click(object sender, EventArgs e)
        {
            Pos = 0;
            _dataBind();
        }

        protected void btnprevious_Click(object sender, EventArgs e)
        {
            Pos = (int)this.ViewState["vs"];
            Pos -= 1;
            this.ViewState["vs"] = Pos;
            _dataBind();
        }

        protected void btnnext_Click(object sender, EventArgs e)
        {
            Pos = (int)this.ViewState["vs"];
            Pos += 1;
            this.ViewState["vs"] = Pos;
            _dataBind();
        }

        protected void btnlast_Click(object sender, EventArgs e)
        {
            Pos = AdSource.PageCount - 1;
            _dataBind();
        }

        protected void dListItems_ItemCommand(object source, DataListCommandEventArgs e)
        {
            try
            {
                if (e.CommandName.Equals("btnDetails"))
                {
                    String Row_Index = e.CommandArgument.ToString();
                    String Row_ID = dListItems.DataKeys[Int32.Parse(Row_Index) - 1].ToString();
                    Session.Add("__FAQDetailsId",Row_ID);
                    Response.Redirect("~/Fa/FAQ/FAQDetails.aspx");
                }
            }
            catch (Exception ex)
            {
               // DivMesseage.InnerHtml = AppCode.Functions._ShowMessage("خطا 001", "خطا در برقراری ارتباط با سرور");
               // RunMesseageBox();
                return;
            }
        }
    }
}

پاسخ های این پرسش

تعداد پاسخ ها : 0 پاسخ
در حال حاضر هیچ پاسخی ارسال نشده است
کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)