动态链接 [英] Dynamic Links

查看:75
本文介绍了动态链接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

亲爱的所有人,

我有一个页面在数据列表中保存数据.我使用页面预初始化事件期间创建的动态链接按钮为数据列表创建了页面选项.它运行if(!Ispostback).

然后我保存会话中的页数,以便在每次刷新页面时不连接到数据库.

然后我有一个下拉列表,该数字对应于该列表页面更改.因此,链接按钮的数量也应随选择而变化.

但是,当我单击按钮页面时,preinit在处理单击事件之前先创建了链接按钮,因此根据保存的数字创建了链接按钮.会话,换句话说就是根据上一个页面的编号..

这是受代码

保护的无效page_Preinit(object sender,EventArgs e)
{
if(!IsPostBack)
{
getpagecount("0","0","0"); ////获取数据库的页数计数.
}
else {lb_Count = int.Parse(Session ["Page"].ToString()); }//获取会话中的图形.


for(int i = 1; i< = lb_Count; i ++)
{
LinkBut​​ton bottomLink = new LinkBut​​ton();
LiteralControl bottomLiteral = new LiteralControl(& nbsp;");
bottomLink.Text = i.ToString();
pnlBottom.Controls.Add(bottomLink);
pnlBottom.Controls.Add(bottomLiteral);
bottomLink.Click + = new EventHandler(this. changeLink);
}

如果(con!= null&& con.State == ConnectionState.Open)
{
con.Close();
cmd. Dispose();
}
}

此处被选中的事件

受保护的无效btnYemekler_Click(对象发送者,ImageClickEventArgs e)
{
//HERE,会话更改中的页码已创建,但链接对象已创建.
getpagecount(DlAscilar.SelectedValue.ToString(),
DlMutfaklar.SelectedValue.ToString(),DlBolgeler.SelectedValue.ToString());



doldur(DlAscilar.SelectedValue.ToString(),
DlMutfaklar.SelectedValue.ToString(),DlBolgeler.SelectedValue.ToString());
dlListe_Doldur(0);
}

该如何处理此问题.

感谢ADVANCE

Dear All,

I have a page holding data in data list. I created paging option for datalist with dynamic link buttons created during-page pre init event. It runs if(!Ispostback).

Then I hold number of pages in session in order not to connect to database in each page refresh.

Then I have dropdown list accorging to which the number of pages changes. So the number of link buttons also should change with selection.

However when I clicked on the button page-preinit creates the link buttons before the it handles click event, therefore creates the link buttons according to the number hold in session, in other words according to previous page number..

Here are the codes

protected void page_Preinit(object sender, EventArgs e)
{
if (!IsPostBack)
{
getpagecount("0","0","0"); // gets the page count form database.
}
else { lb_Count = int.Parse(Session["Page"].ToString()); } //gets the figure in the session.


for (int i = 1; i <= lb_Count; i++)
{
LinkButton bottomLink = new LinkButton();
LiteralControl bottomLiteral = new LiteralControl("&nbsp;");
bottomLink.Text = i.ToString();
pnlBottom.Controls.Add(bottomLink);
pnlBottom.Controls.Add(bottomLiteral);
bottomLink.Click += new EventHandler(this.changeLink);
}

if (con!=null && con.State == ConnectionState.Open)
{
con.Close();
cmd.Dispose();
}
}

HERE IS THE CLICKED EVENT

protected void btnYemekler_Click(object sender, ImageClickEventArgs e)
{
//HERE, THE PAGE NUMBER IN SESSION CHANGES BUT THE LINK BUTTOS ARE ALREADY CREATED.
getpagecount(DlAscilar.SelectedValue.ToString(),
DlMutfaklar.SelectedValue.ToString(), DlBolgeler.SelectedValue.ToString());



doldur(DlAscilar.SelectedValue.ToString(),
DlMutfaklar.SelectedValue.ToString(), DlBolgeler.SelectedValue.ToString());
dlListe_Doldur(0);
}

WHAT CAN I DO TO HANDLE THIS PROBLEM.

THANKS IN ADVANCE

推荐答案

我的回答可能/可能不肮脏,但这行得通.

1.将服务器端HiddenField放在* .aspx文件中.
2.处理Button的OnClientClick事件(JavaScript).
3.在OnClientClick上,您必须将页码或所需的任何数据设置到HiddenField中.
4.在OnClientClick事件之后,Button的Click过程将开始.
5.现在,在您的Page_PreInit中,获取HiddenField的值,然后继续执行常规过程.
6.在这里您可以摆脱Session对象.

如果您有任何疑问,请告诉我.如果有帮助,请标记为答案.

My answer may/may not be dirty, but that would work.

1. Place a Server-Side HiddenField in the *.aspx file.
2. Handle the OnClientClick event (JavaScript) of the Button.
3. OnClientClick you have to set the page number or whatever data you want into the HiddenField.
4. After the OnClientClick event, Button''s Click process will start.
5. Now in your Page_PreInit get the values of the HiddenField and continue your routine process.
6. Here you can get rid of Session object.

Let me know if you have questions. Please mark it as answer if it helps you.


这篇关于动态链接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆