PDA

View Full Version : سوال: مشکل در صفحه بندی GridView



asiehmohammadian
پنج شنبه 25 خرداد 1391, 01:21 صبح
سلام
من گریدویو صفحه بندی کردم واین تکه کد و نوشتم :

protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
}

اما به e.NewPageIndex خطا میگیره؟
کسی میدونه باید چکارکنم؟
چجوری صفحه بعد وبراش مشخص کنم؟

asiehmohammadian
جمعه 26 خرداد 1391, 00:55 صبح
دوستان هیچ کس هیچ نظری نداره؟
خواهش میکنم یک راهنمایی بکنید

shahrzad87
جمعه 26 خرداد 1391, 01:17 صبح
چه خطایی می ده؟ متن خطا رو بنویسین.

shahrzad87
جمعه 26 خرداد 1391, 11:13 صبح
سلام
من گریدویو صفحه بندی کردم واین تکه کد و نوشتم :

protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
}

اما به e.NewPageIndex خطا میگیره؟
کسی میدونه باید چکارکنم؟
چجوری صفحه بعد وبراش مشخص کنم؟
شما این کد رو توی event اشتباه نوشتین، این کد رو بنویسین :


protected void GridView1_PageIndexChanged(object sender, EventArgs e)
{
Btn_showDetail_Click(null, null);
}

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();

}

asiehmohammadian
جمعه 26 خرداد 1391, 18:59 عصر
خطاش اینه :
Error 2 'System.Web.UI.WebControls.GridViewSelectEventArgs ' does not contain a definition for 'NewPageIndex' and no extension method 'NewPageIndex' accepting a first argument of type 'System.Web.UI.WebControls.GridViewSelectEventArgs ' could be found (are you missing a using directive or an assembly reference?)
درکدی که شمانوشتین شما دکمه ای به اسم Btn_showDetails_clik دارید؟
من همچین دکمه ای ندارم من از AllowPaging خودگریداستفاده کردم

shahrzad87
جمعه 26 خرداد 1391, 19:46 عصر
توی این Btn به دیتاسورس گریدویو مقدار دادم و بعد از اینکه به page جدید میره دوباره باید دیتا بهش bind بشه، برای همین توی GridView1_PageIndexChanged این کد رو نوشتم.



protected void Btn_showDetail_Click(object sender, EventArgs e)
{
try
{
GridView1.DataSource = (new AmarF2Cls()).GetPNForms2();
GridView1.DataBind();
}
catch (Exception)
{
throw;
}
}


شما چطور به گریدویو مقدار میدین؟ کد زیر رو بنویسین بیبینین مشکل حل میشه. اگر بازم جواب نگرفتین بگین که راهنماییتون کنم.


protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) {
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();

}




موفق باشین.

asiehmohammadian
شنبه 27 خرداد 1391, 00:29 صبح
ممنون دوست عزیز
من همین کدی که شمانوشتیدونوشتم وهمونطورکه گفتم به e.NewPageIndex خطایی که در بالا نوشتم و میده
من گریدوبه این صورت مقدارمیدم :

SqlDataAdapter da = new SqlDataAdapter("select id,re_fname,re_lname,re_degree,re_province,re_city from t_register", cn);
DataSet ds = new DataSet();
da.Fill(ds, "table");
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
}
private void BindData()
{
SqlDataAdapter da = new SqlDataAdapter("select id,re_fname,re_lname,re_degree,re_province,re_city from t_register", cn);
DataTable dt = new DataTable();
da.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}

ممنون میشم راهنماییم کنید

asiehmohammadian
شنبه 27 خرداد 1391, 19:42 عصر
دوستان خواهش میکنم
یکی کمکم کنه
یعنی واقعا هیچ کس حاضرنیست جواب بده؟!!!!!

shahrzad87
شنبه 27 خرداد 1391, 21:27 عصر
چرا دو بار به گرید مقدار دادین؟
مطمئن هستین که dt و Table[0] مقدار دارن و خالی نیستن؟
اگر می تونین صفحه ای از پروژه که مشکل دارین رو بذارین اینجا یا کل کدهای صفحه ای که گرید رو مقدار دادین و صفحه بندی کردین رو کپی کنین، اینجوری خیلی سریعتر می تونم کمکتون کنم.
من یک پروژه ساده براتون نوشتم اما حجمش 1M هست اینجا آپلود نشد، ایمیل بدین بریتون بفرستم. این کد رو نوشتم و مشکلی نداره...


public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection cn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=D:\GridViewPa ging\GridViewPaging\App_Data\Database1.mdf;Integra ted Security=True;User Instance=True");
SqlDataAdapter da = new SqlDataAdapter("select id,name from Table1", cn);
DataTable dt = new DataTable();
da.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
}

protected void GridView1_PageIndexChanged(object sender, EventArgs e)
{
SqlConnection cn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=D:\GridViewPa ging\GridViewPaging\App_Data\Database1.mdf;Integra ted Security=True;User Instance=True");
SqlDataAdapter da = new SqlDataAdapter("select id,name from Table1", cn);
DataTable dt = new DataTable();
da.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}
}





<body>
<form id="form1" runat="server">
<div>

<table style="width:100%;">
<tr>
<td>
&nbsp;</td>
<td align="center">
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
onpageindexchanged="GridView1_PageIndexChanged"
onpageindexchanging="GridView1_PageIndexChanging" PageSize="2">
</asp:GridView>
</td>
<td>
&nbsp;</td>
</tr>
</table>
</div>
</form>
</body>

asiehmohammadian
یک شنبه 28 خرداد 1391, 00:08 صبح
ممنون ازلطفتون این آدرس میلمه
asiehmohammadian@yahoo.com
کدهای کل صفحه هم اینه :

protected void Page_Load(object sender, EventArgs e)
{
if (Session["mode"] != "true")
{
Response.Redirect("Login.aspx");
}
else
{
Label2.Text = Session["name"].ToString();
}
if (!IsPostBack)
{
DataBind();
}
SqlDataAdapter da = new SqlDataAdapter("select id,re_fname,re_lname,re_degree,re_province,re_city from t_register", cn);
DataSet ds = new DataSet();
da.Fill(ds, "table");
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
}
private void BindData()
{
SqlDataAdapter da = new SqlDataAdapter("select id,re_fname,re_lname,re_degree,re_province,re_city from t_register", cn);
DataTable dt = new DataTable();
da.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "select")
{
int i = Convert.ToInt32(e.CommandArgument);
GridViewRow r = GridView1.Rows[i];
Response.Write(r.Cells[2].Text);
}
}
protected void btnexit_Click(object sender, ImageClickEventArgs e)
{
Session.Remove("mode");
Response.Redirect("Login.aspx");
}
protected void btnedit_Click(object sender, ImageClickEventArgs e)
{
Response.Redirect("EditAccount.aspx");
}
protected void btnemail_Click(object sender, ImageClickEventArgs e)
{
Response.Redirect("Email.aspx");
}
protected void btnexcell_Click(object sender, ImageClickEventArgs e)
{
Response.Clear();
Response.AddHeader("content-disposition", "attachment; filename=Export.xls");
Response.ContentType = "application/ms-excel";
StringWriter sW = new StringWriter();
HtmlTextWriter myHtml = new HtmlTextWriter(sW);
HtmlForm myForm = new HtmlForm();
GridView1.Parent.Controls.Add(myForm);
myForm.Attributes["runat"] = "server";
myForm.Controls.Add(GridView1);
myForm.RenderControl(myHtml);
Response.Write(sW.ToString());
Response.End();
}
protected void btnsearch_Click1(object sender, ImageClickEventArgs e)
{
SqlConnection cn = new SqlConnection("Data Source=.;Initial Catalog=db_crm;Integrated Security=True");
SqlCommand cm = new SqlCommand("select id,re_fname,re_lname,re_degree,re_province,re_city from t_register where re_fname='" + txtname.Text + "' or re_auther='" + txtauther.Text + "' or re_province='" + txtprovince.Text + "' or re_creation='" + txtdate.Text + "' ", cn);
cn.Open();
SqlDataAdapter da = new SqlDataAdapter(cm);
DataSet ds = new DataSet();
da.Fill(ds);
cn.Close();
if (ds.Tables.Count > 0)
{
GridView1.DataSource = ds;
GridView1.DataBind();
}
}
protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
}
}

همه صفحه رو نوشتم،ممنونم

fakhravari
چهارشنبه 31 خرداد 1391, 14:02 عصر
والا من کل پست خوندم چیزی نفهمیدم ازش.
خودم یه نمونه میزارم.
public DataTable Top5_Post()
{
SqlConnection con = new SqlConnection(@"Data Source=COMPUTER1\SQLEXPRESS;Initial Catalog=TGJ;Integrated Security=True");
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "SELECT TOP 5 Title,ID FROM Siasat_Roz ORDER BY ID DESC";
con.Open();

SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();

da.Fill(dt);
con.Close();
return dt;
}



protected void Page_Load(object sender, EventArgs e)
{
GridView2.DataSource = Top5_Post();
GridView2.DataBind();
}



protected void GridView2_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView2.PageIndex = e.NewPageIndex;
GridView2.DataBind();
}


<asp:GridView ID="GridView2" runat="server"
AutoGenerateColumns="False" ShowHeader="False"
ShowHeaderWhenEmpty="True" AllowPaging="True" PageSize="8"
onpageindexchanging="GridView2_PageIndexChanging" Width="100%" >
<Columns>
<asp:TemplateField>
<ItemTemplate>
-
-
-
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EmptyDataTemplate>
<center>
موردی یافت نشد موارد دیگر را امتحان کنید
</center>
</EmptyDataTemplate>
</asp:GridView>

tarsim
یک شنبه 15 بهمن 1391, 16:01 عصر
سلام دوست عزیز دستور شما کاملا درست میباشد . فقط یک چیز را اشتباه کردید اون هم اینه


protectedvoid GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
}





شما در رویداد _SelectedIndexChanging این کد را نوشتید که باید در رویداد _PageIndexChanging مینوشتید

امیدوارم مشکلتون حل شه.