PDA

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



zareei_ta
دوشنبه 26 دی 1390, 09:47 صبح
کد زیر با انتخاب درخت اطلاعات را در گرید نمایش میده اما موقعی که گرید چند صفحه ای میشه و صفحه های بعد را انتخاب می کنم به جای اینکه اطلاعات مربوط به همون نود را نشون بده اطلاعات نودی که در حالت پیش فرض انتخاب شده را نشون میده. لطفا کمک کنید


public partial class CentersConUn : System.Web.UI.Page
{
public SqlConnection cn = new SqlConnection();
string StrConnection = ConfigurationManager.ConnectionStrings["NovinSiteDBConnectionString"].ConnectionString;
public SqlCommand cmd = new SqlCommand();
public SqlDataAdapter sda = new SqlDataAdapter();


protected void Page_Load(object sender, EventArgs e)
{
this.Title = "شرکت های طرف قرارداد";
fill_Tree2();
TreeView1_SelectedNodeChanged(sender, e);

}

public void FillChild(TreeNode parent, string GroupName)
{

DataSet ds = PDataset("Select distinct GroupName,GroupId from Groups where GroupName =N'" + GroupName + "'order by GroupName");
parent.ChildNodes.Clear();

foreach (DataRow dr in ds.Tables[0].Rows)
{

TreeNode child = new TreeNode();

child.Text = dr["GroupName"].ToString().Trim();

child.Value = dr["GroupId"].ToString().Trim();
TreeView1.CollapseAll();

if (child.ChildNodes.Count == 0)
{

child.PopulateOnDemand = true;
child.Selected = true;
child.ExpandAll();

}

child.SelectAction = TreeNodeSelectAction.SelectExpand;

child.CollapseAll();

parent.ChildNodes.Add(child);
//child.Selected = true;

}

}





protected DataSet PDataset(string Select_Statement)
{

cn.ConnectionString = StrConnection;
SqlDataAdapter ad = new SqlDataAdapter(Select_Statement, StrConnection);
DataSet ds = new DataSet();
ad.Fill(ds);
return ds;

}

void fill_Tree2()
{
DataSet PrSet = PDataset("Select distinct GroupName from Groups order by GroupName");

TreeView1.Nodes.Clear();

foreach (DataRow dr in PrSet.Tables[0].Rows)
{

TreeNode tnParent = new TreeNode();

tnParent.Text = dr["GroupName"].ToString();

//tnParent.Value = dr["GroupId"].ToString();
tnParent.Value = tnParent.Text;
tnParent.PopulateOnDemand = true;


tnParent.SelectAction = TreeNodeSelectAction.SelectExpand;

tnParent.Expand();

//tnParent.Selected = true;

TreeView1.Nodes.Add(tnParent);

//FillChild(tnParent, tnParent.Value);
tnParent.Selected = true;

}

}
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
string val = TreeView1.SelectedValue.ToString();
SqlDataSource2.SelectCommand = "SELECT StoresId,StoreName, StoreAddress,StorePhone,Region, Discount, BirthDiscount,Image, Description, Description FROM Stores inner join Groups on Stores.GroupId=Groups.GroupId WHERE (GroupName=N'" + val + "') ORDER BY StoreName";
TreeView1.ExpandDepth = 0;
try
{
GridView2.DataBind();
}
catch { }
}

protected void GridView2_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView2.PageIndex = e.NewPageIndex;
string val = TreeView1.SelectedValue.ToString();
SqlDataSource2.SelectCommand = "SELECT StoresId,StoreName, StoreAddress,StorePhone,Region, Discount, BirthDiscount,Image, Description, Description FROM Stores inner join Groups on Stores.GroupId=Groups.GroupId WHERE (GroupName=N'" + val + "') ORDER BY StoreName";

GridView2.DataBind();
}
protected void GridView2_SelectedIndexChanged(object sender, EventArgs e)
{

}
protected void btnLogin_Click(object sender, EventArgs e)
{
DstUsers ds = new DstUsers();
UsersInfoTableAdapter sda = new UsersInfoTableAdapter();
sda.FillByUserPass(ds.UsersInfo, txtUserName.Text.Trim(), txtPass.Text.Trim());
if (ds.UsersInfo.Rows.Count > 0)
{
Session["ID"] = ds.UsersInfo.Rows[0][ds.UsersInfo.UserNameColumn].ToString();
Session["Type"] = ds.UsersInfo.Rows[0][ds.UsersInfo.UserTypeColumn].ToString();
Session["UserNames"] = ds.UsersInfo.Rows[0][ds.UsersInfo.UserNameColumn].ToString();
lblWelcome.Text = "کاربر گرامی" + " " + Session["UserNames"].ToString() + " " + "خوش آمدید";
Response.Redirect("CentersContract.aspx");

}
else
{
lblInfo.Text = "نام کاربری یا کلمه عبور اشتباه می باشد";
}
txtPass.Text = "";
txtUserName.Text = "";

}
}

hamid_shrk
دوشنبه 26 دی 1390, 09:50 صبح
کد پیج لودت رو اینجوری بزار :

if (!IsPostBack)
{
this.Title = "شرکت های طرف قرارداد";
fill_Tree2();
TreeView1_SelectedNodeChanged(sender, e);
}

zareei_ta
دوشنبه 26 دی 1390, 09:53 صبح
ممنون درست شد اما وقتی به صفحه های بعدی گرید میرم و بعد نود دیگه رو انتخاب میکنم شماره صفحه از صفحه 1 شروع نمیشه و از صفحه های بعدی شروع میشه.

hamid_shrk
دوشنبه 26 دی 1390, 09:58 صبح
چون پروژتون رو ندیدم متوجه نمیشم چی میگید.
اگه میشه با عکس توضیح بدید

zareei_ta
دوشنبه 26 دی 1390, 10:14 صبح
ساعت فروشی در گرید سه صفحه اطلاعات داره صفحه دوم را انتخاب میکنم( عکس اول) وقتی که نود سالن زیبایی و لاغری را انتخاب می کنم گرید اطلاعات صفحه دوم مربوط به اون را نشون میده در حالیکه باید از صفحه اول نشون بده(عکس دوم)

hamid_shrk
دوشنبه 26 دی 1390, 10:23 صبح
تو کلیکتون اول گرید رو بایند کنید :
gridview.databind()بعد بگید که نود هاش رو باز کنه
یا اینکه :
GridView2.PageIndex = 0;
رو بزارید

zareei_ta
دوشنبه 26 دی 1390, 10:36 صبح
در رویداد GridView2_PageIndexChanging اینکار را انجام بدم؟

hamid_shrk
دوشنبه 26 دی 1390, 10:51 صبح
تو این :

protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)