注册 登录
编程论坛 ASP.NET技术论坛

[已解决]页面绑定!!谢谢川流不息版主

tel1982 发布于 2007-05-04 14:03, 1633 次点击

我把计算出来的页数绑定到了dropDownList上,我在SelectedIndexChanged事件里面应该怎么写呢??
private void initialize()
{
this.lblCurrentPage.Text="1";
this.databindTodl();
//计算总共有多少记录
   RecordCount = CalculateRecord();
//计算搜索到的记录
   this.lblRecordCount.Text = RecordCount.ToString();   
   //计算总共有多少页
PageSize=9;
  PageCount = (float)RecordCount/PageSize>(int)RecordCount/PageSize?RecordCount/PageSize+1:RecordCount/PageSize; //
  lblPageCount.Text = PageCount.ToString();
//ViewState["PageCount"] = PageCount;
//绑定到dropdownlist上
for(int i=1;i<=PageCount;i++)
{
this.ddlPage.Items.Add(new ListItem(i.ToString()));
}
}
下面是我在SelectedIndexChanged事件中写的代码,但是当数字变化了以后,页面却没有变化
private void ddlPage_SelectedIndexChanged(object sender, System.EventArgs e)
{
for(int i=1;i<=this.ddlPage.Items.Count;i++)
{
if(this.ddlPage.SelectedValue==i.ToString())
{
this.databindTodl();
}
}
}
请各位不吝赐教。

[此贴子已经被作者于2007-5-4 16:23:44编辑过]

30 回复
#2
川流不息2007-05-04 14:10

你是不是應該在綁定完數據後,再把你的頁面號給設定一下?好像你只負責綁定數據,但是在綁定完後沒有給datagrid設置你到的頁面吧。

#3
川流不息2007-05-04 14:11

等一下,我沒看清楚上,上面的發言作廢。

#4
川流不息2007-05-04 14:15
你還少了操作。我記得。
#5
川流不息2007-05-04 14:16

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
bb();//數據綁定
}
#6
tel19822007-05-04 14:28
回复:(川流不息) protected void GridView1_Pag...
在DropDownList的属性里面好像没有pageindex属性呀?
#7
tel19822007-05-04 14:30
我用的是DataList,并且我试了没有这个属性呀?
#8
川流不息2007-05-04 15:08
呵呵,他的事件是在datagrid的事件。
不是下拉框的。
#9
川流不息2007-05-04 15:10
上面是說在datagrid改變頁面時觸發的事件。
#10
tel19822007-05-04 15:11
我没有用dataGrig控件呀,我用的DataList控件?我真的不太懂你所说的。
#11
tel19822007-05-04 15:13

我的我的所有代码给你看一下吧:


[此贴子已经被作者于2007-5-4 16:21:45编辑过]

#12
川流不息2007-05-04 15:18
你先等等,我看看你的代碼。我沒用過DataList.但我想應該差不了多少吧。
#13
川流不息2007-05-04 15:19
2003還是2005?
#14
川流不息2007-05-04 15:26

你用斷點看一下,在你換頁面時,得到頁面號是不是正確的?我是指給頁面設定頁面號,不是在下拉框顯示的那個號。你跟蹤一下看看對不對。

#15
tel19822007-05-04 15:27
好的,我用的是2003,拜托了!
#16
川流不息2007-05-04 15:31
this.lblCurrentPage.Text=Convert.ToString(Convert.ToInt32(this.lblCurrentPage.Text)-1);
別的地方有寫這個,為什麼在你下拉框改變的時候不寫呢?你不寫但是方法裡面要得到這個標簽的值當作當前頁面。事件產生的時候,因為你沒有改變它的值,所以它還是以前一樣,可以看出根本不會改變頁面。
#17
川流不息2007-05-04 15:50
不好意思,我想問一下這段:

private void ddlPage_SelectedIndexChanged(object sender, System.EventArgs e)
{
for(int i=1;i<=this.ddlPage.Items.Count;i++)
{
if(this.ddlPage.SelectedValue==i.ToString())
{
this.databindTodl();
}
}

}

為什麼要在裡面循環?還有那個判斷是什麼意思?
#18
tel19822007-05-04 15:55
就是这样,真是太谢谢你了!
#19
tel19822007-05-04 15:59

我判断的目的是看当前选的是哪一页,然后绑定,但是我忘了写你刚才说的那一行代码了。但是我该怎样判断他是上翻还是下翻能呢?

#20
川流不息2007-05-04 16:02
你拿以前的標簽的內容和要設置的頁面比較,大就是上翻嘍,小肯定是下翻。
#21
川流不息2007-05-04 16:05
但是你不覺得你的判斷顯得毫無意義嗎?判斷完後,你做綁定,如果你是要把那個i的值設為頁面號,那既然this.ddlPage.SelectedValue==i.ToString()條件成立,何不干脆用這個this.ddlPage.SelectedValue呢?因為我看你判斷成立根本沒有做其他的操作。
#22
tel19822007-05-04 16:11

确实如此,多谢你的建议,你真的很热心,能留下你的QQ与你交个朋友吗?

#23
tel19822007-05-04 16:22
问题已经解决,谢谢版主:川流不息。
#24
川流不息2007-05-04 16:30

解決就好,工作太忙,我一般不上QQ。MSN:killbug@126.com  如果你有的話就可以加我。

#25
tel19822007-05-04 16:32
好的,那谢谢了。
#26
shenba2007-05-04 18:32
用DataList的话 就需要自己写分页的代码了
可以在填充dataset时分页
adpater.Fill(dataSet, start, maxRow, tableName);
计算好 起始页 就OK啦
#27
川流不息2007-05-04 22:21
adpater.Fill(dataSet, start, maxRow, tableName);

我就納悶中間那兩個參數是干什麼的,一直沒有用過,原來作為分頁可以這樣用。學習了。多謝樓上的兄弟。
#28
beniao2007-05-06 01:31

哎 你要在downlist里选择后让dategrid里的值该变
直接在列表空间的 改变事件里编码 就搞定了撒

#29
tel19822007-05-06 17:34
还真没用过,能否把代码共享一下,谢谢了!
#30
川流不息2007-05-06 17:38
他的意思是讓你把頁面改變的代碼寫在那個下拉框的change事件中,直接改頁面。
#31
tel19822007-05-07 09:34

哦,这样呀,谢谢了!

1