icaaqMedlem sedan okt. 20005 273 inlägg Tjenare.
Jag vill skapa en egen paging. Jag har gjort en förut och då använde jag Hyperlinks så här:
[red]
if(PagedData.PageCount > 0)
{
for(int i = 0; i < PagedData.PageCount; i++)
{
HyperLink link = new HyperLink();
link.NavigateUrl = HttpContext.Current.Request.CurrentExecutionFilePath+"?p="+HttpContext.Current.Request.QueryString["p"].ToString()+"&page="+i.ToString();
link.Text = Convert.ToString((i + 1));
Literal lit = new Literal();
lit.Text = " ";
this.plcLinks.Controls.Add(lit);
this.plcLinks.Controls.Add(link);
}
}[/red]
Vid den sida som jag har nu så har jag dock lite olika värden i dropdownlister och dessa är argument till min datagrid. Så låt oss säga att jag väljer att visa alla städer i Dalarna i dropdownlisten sedan uppdaterar jag datagriden. Då kommer upp tre sidor i min paging. Klickar jag på sida 2 så kommer värdet i dropdownlisten att försvinna och standardvärdet i dropdownlisten göra så att datagriden inte har någon paging alls......
Hoppas ni förstår och att det finns något bra sätt att lösa detta på. Jag förstår att jag kan föra vidare mina värden från dropdownlisten i Querystringen men jag tänkte om det fanns något annat sätt att bibehålla sidans värde.
mv icaaq
PaceMedlem sedan juni 20019 024 inlägg Du tappar alltså värdet på din dropdownlist.
Har du EnableViewState="true"?
icaaqMedlem sedan okt. 20005 273 inlägg Ja.
Problemet blir väl att det inte blir en postback utan en helt ny sidaladdning, eller har jag fel?
mv icaaq
icaaqMedlem sedan okt. 20005 273 inlägg ok
[red]
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
//Laddar länen
this.LoadProvince();
//Laddar Kategorierna
this.LoadCategories();
//Laddar Sökresultatet
this.LoadSearch(this.SearchBox.Text, Convert.ToInt16(this.categories.SelectedItem.Value), Convert.ToInt16(HttpContext.Current.Request.QueryString["p"]), false, 0);
}
}
public void LoadSearch(string SearchWord, int Category, int Province, bool Neighbour, int Size)
{
Logic l = new Logic(ConnectionType.DataAccessLayer);
this.PagedData.DataSource = l.GetSearch(SearchWord, Category, Province, Neighbour, Size);
this.PagedData.AllowPaging = true;
this.PagedData.PageSize = 1;
try
{
PagedData.CurrentPageIndex = Convert.ToInt32(Request.QueryString["page"].ToString());
}
catch
{
PagedData.CurrentPageIndex = 0;
}
if(PagedData.PageCount > 0)
{
for(int i = 0; i < PagedData.PageCount; i++)
{
HyperLink link = new HyperLink();
link.NavigateUrl = HttpContext.Current.Request.CurrentExecutionFilePath+"?p="+HttpContext.Current.Request.QueryString["p"].ToString()+"&page="+i.ToString();
link.Text = Convert.ToString((i + 1));
Literal lit = new Literal();
lit.Text = " ";
this.plcLinks.Controls.Add(lit);
this.plcLinks.Controls.Add(link);
}
}
this.searchResult.DataSource = this.PagedData;
this.searchResult.DataBind();
this.count.Text = this.PagedData.DataSourceCount.ToString() +" st annonser";
}
public void searchButtonClick(object sender, System.EventArgs e)
{
bool neighbour = false;
int p = Convert.ToInt16(this.province.SelectedItem.Value);
Logic l = new Logic(ConnectionType.DataAccessLayer);
if(this.province.SelectedItem.Value == "0")
{
neighbour = true;
p = Convert.ToInt16(HttpContext.Current.Request.QueryString["p"]);
}
this.LoadSearch(this.SearchBox.Text, Convert.ToInt16(this.categories.SelectedItem.Value), p , neighbour, 0);
}[/red]
mv icaaq
icaaqMedlem sedan okt. 20005 273 inlägg [red]public void LoadProvince()
{
//Kollar om querystringen p finns
if(HttpContext.Current.Request.QueryString["p"] != null)
{
//Sätter p
this.p = Convert.ToInt16(HttpContext.Current.Request.QueryString["p"]);
//Skapar en instans av min Logic
Logic l = new Logic(ConnectionType.ORMapper);
//Hämtar det valda länet
TblProvince t = l.GetSelectedProvince(p);
//Skapar en ny ListItem för länet, samt sätter värdet och texten på den
ListItem pItem = new ListItem();
pItem.Text = t.FldProvinceName;
pItem.Value = t.PkProvinceId.ToString();
//Lägger till ovanstående ListItem
this.province.Items.Add(pItem);
//Skapar en ny ListItem för angränsande län, samt sätter värdet och texten på den
ListItem nItem = new ListItem();
nItem.Text = "Angränsande län";
nItem.Value = "0";
//Lägger till ovanstående ListItem
this.province.Items.Add(nItem);
//Skapar en ny ListItem för hela sverige, samt sätter värdet och texten på den
ListItem sItem = new ListItem();
sItem.Text = "Hela sverige";
sItem.Value = "-1";
//Lägger till ovanstående ListItem
this.province.Items.Add(sItem);
//Skapar en ny ListItem för - - - - , samt sätter värdet och texten på den
ListItem Item = new ListItem();
Item.Text = "- - - - - - - - - - -";
//Lägger till ovanstående ListItem
this.province.Items.Add(Item);
//Loopar igenom alla län
ICollection province = l.GetAllProvinces();
foreach(TblProvince prov in province)
{
if(p != prov.PkProvinceId)
{
ListItem li = new ListItem();
li.Text = prov.FldProvinceName;
li.Value = prov.PkProvinceId.ToString();
this.province.Items.Add(li);
}
}
}
else
{
Response.Redirect("default.aspx");
}[/red]
på begäran ;)
PaceMedlem sedan juni 20019 024 inlägg Har haft samma problem (motsv i alla fall :e) och har inte heller hittat någon lösning.
Problemet jag kan säga på rak arm är att de tappar sina värden för att de läggs till dynamsikt.