怎样保存datagrid的选择行 传个参数(SelectIndex)过去,回来的时候带着回来就可以了!这些页面值转换的时候这个参数一直带着! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 哦哦,处理完后你原来传递的值在传回来设置datagrid.selectedindex 可用session在页面间传值,Session["abc"]=abc a.aspx、b.aspx在a.aspx里面使用模版列:<asp:DataGrid id="YourID" runat="server" AutoGenerateColumns="False"><Columns><asp:TemplateColumn HeaderText="Sample Column"> <ItemTemplate> <asp:Hyperlink runat="server" Text='<%#Container.DataItem("TextVal")%>' NavigateUrl='<%# "a.aspx?proID=" & Server.UrlEncode(Container.DataItem("proID")) & "&SelectIndex=" & Server.UrlEncode(Container.DataItem("SelectIndex"))%>'/> </ItemTemplate></asp:TemplateColumn></Columns>在b.aspx里面的返回按钮里面response.redirect("a.aspx?SelectIndex="+this.Request["SelectIndex"])在a.aspx的page_load里面邦定以后再设置SelectIndex! 上面Container.DataItem("SelectIndex"))替换成:DataBinder.Eval(Container, "ItemIndex", "{0}") 我给你。我找的一个我已经使用过了可以的代码如下:在Global.asaxprotected void Session_Start(Object sender, EventArgs e) { bool[] checks=new bool[10000]; for (int i=0;i<10000;i++) { checks[i]=false; } Session.Add("CheckBoxchecks", checks); }webform1public void BindGrid() { string strSql ="SELECT * FROM Products "; SqlDataAdapter myCommand = new SqlDataAdapter(strSql, myConnection); DataSet ds = new DataSet(); myCommand.Fill(ds, "Products"); MyDataGrid.DataSource=ds.Tables[0].DefaultView; MyDataGrid.DataBind(); ShowStatsPage(); } private void PagerButtonClick(object sender, System.EventArgs e) { //获得LinkButton的参数值 String arg = ((LinkButton)sender).CommandArgument; switch(arg) { case ("next"): if (MyDataGrid.CurrentPageIndex < (MyDataGrid.PageCount - 1)) { SaveCheckState(); MyDataGrid.CurrentPageIndex ++; } break; case ("prev"): if (MyDataGrid.CurrentPageIndex > 0) { SaveCheckState(); MyDataGrid.CurrentPageIndex --; } break; case ("fist"): SaveCheckState(); MyDataGrid.CurrentPageIndex=0; break; case ("last"): SaveCheckState(); MyDataGrid.CurrentPageIndex = (MyDataGrid.PageCount - 1); break; default: //本页值 MyDataGrid.CurrentPageIndex = Convert.ToInt32(arg); break; } BindGrid(); DisplayCheckState(); } void ShowStatsPage() { //显示页面信息 lblCurrentIndex.Text = "[<font color=blue >当前为第:" + ((int)MyDataGrid.CurrentPageIndex+1) + "页</font>]"; lblPageCount.Text = "[<font color=blue>共:" + MyDataGrid.PageCount + "页</font>]"; } private void btnGo_Click(object sender, System.EventArgs e) { //页面直接跳转的代码 if(txtGoPage.Text.Trim()!="") { int PageI=Int32.Parse(txtGoPage.Text.Trim())-1; if (PageI >=0 && PageI < (MyDataGrid.PageCount)) MyDataGrid.CurrentPageIndex = PageI ; } BindGrid(); } private void SaveCheckState() { check=(bool[])Session["CheckBoxchecks"]; for (int i=0;i< this.MyDataGrid.PageSize;i++) { CheckBox Che=(CheckBox)this.MyDataGrid.Items[i].Cells[0].FindControl("CheckBox1"); if (Che.Checked) { check[MyDataGrid.CurrentPageIndex*MyDataGrid.PageSize +i]=true; } else { check[MyDataGrid.CurrentPageIndex*MyDataGrid.PageSize +i]=false; } } } private void DisplayCheckState() { for (int j=0;j<MyDataGrid.PageSize;j++) { CheckBox Che1=(CheckBox)MyDataGrid.Items[j].Cells[0].FindControl("CheckBox1"); if (check[MyDataGrid.CurrentPageIndex*MyDataGrid.PageSize+j]) { Che1.Checked=true; } else { Che1.Checked=false; } } } 求高手解决一个Word操作问题? 文本编辑器 验证控件 asp.net后台值怎么传到前台(html)中控件(在绑定列)中 验证用户名密码是否在数据库里存在老是出错,跪求! 关于checkbox状态控制的问题,高手请帮一下! asp.net 读取大文本 那里有ASP.NET下的WEB控件下载(如TreeView,ToolBar,DataGrid) codebehind是不是不能编译使用?还有自定义控件是不是必须编译? -----------更新数据集遇到的错误------------ 想问一下,留言簿中的分页如何实现? 急给分啦:怎么定时提交按钮呢?
设置datagrid.selectedindex
在a.aspx里面使用模版列:
<asp:DataGrid id="YourID" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateColumn HeaderText="Sample Column">
<ItemTemplate>
<asp:Hyperlink runat="server" Text='<%#Container.DataItem("TextVal")%>' NavigateUrl='<%# "a.aspx?proID=" & Server.UrlEncode(Container.DataItem("proID")) & "&SelectIndex=" & Server.UrlEncode(Container.DataItem("SelectIndex"))%>'/>
</ItemTemplate>
</asp:TemplateColumn></Columns>
在b.aspx里面的返回按钮里面
response.redirect("a.aspx?SelectIndex="+this.Request["SelectIndex"])
在a.aspx的page_load里面邦定以后再设置SelectIndex!
DataBinder.Eval(Container, "ItemIndex", "{0}")
在Global.asax
protected void Session_Start(Object sender, EventArgs e)
{
bool[] checks=new bool[10000];
for (int i=0;i<10000;i++)
{
checks[i]=false;
}
Session.Add("CheckBoxchecks", checks);
}webform1
public void BindGrid()
{
string strSql ="SELECT * FROM Products ";
SqlDataAdapter myCommand = new SqlDataAdapter(strSql, myConnection);
DataSet ds = new DataSet();
myCommand.Fill(ds, "Products");
MyDataGrid.DataSource=ds.Tables[0].DefaultView;
MyDataGrid.DataBind();
ShowStatsPage();
}
private void PagerButtonClick(object sender, System.EventArgs e)
{
//获得LinkButton的参数值
String arg = ((LinkButton)sender).CommandArgument;
switch(arg)
{
case ("next"):
if (MyDataGrid.CurrentPageIndex < (MyDataGrid.PageCount - 1))
{
SaveCheckState();
MyDataGrid.CurrentPageIndex ++;
}
break;
case ("prev"):
if (MyDataGrid.CurrentPageIndex > 0)
{
SaveCheckState();
MyDataGrid.CurrentPageIndex --;
}
break;
case ("fist"):
SaveCheckState();
MyDataGrid.CurrentPageIndex=0;
break;
case ("last"):
SaveCheckState();
MyDataGrid.CurrentPageIndex = (MyDataGrid.PageCount - 1);
break;
default:
//本页值
MyDataGrid.CurrentPageIndex = Convert.ToInt32(arg);
break;
}
BindGrid();
DisplayCheckState();
}
void ShowStatsPage()
{
//显示页面信息
lblCurrentIndex.Text = "[<font color=blue >当前为第:" + ((int)MyDataGrid.CurrentPageIndex+1) + "页</font>]";
lblPageCount.Text = "[<font color=blue>共:" + MyDataGrid.PageCount + "页</font>]";
} private void btnGo_Click(object sender, System.EventArgs e)
{
//页面直接跳转的代码
if(txtGoPage.Text.Trim()!="")
{
int PageI=Int32.Parse(txtGoPage.Text.Trim())-1;
if (PageI >=0 && PageI < (MyDataGrid.PageCount))
MyDataGrid.CurrentPageIndex = PageI ;
}
BindGrid();
} private void SaveCheckState()
{
check=(bool[])Session["CheckBoxchecks"];
for (int i=0;i< this.MyDataGrid.PageSize;i++)
{
CheckBox Che=(CheckBox)this.MyDataGrid.Items[i].Cells[0].FindControl("CheckBox1");
if (Che.Checked)
{
check[MyDataGrid.CurrentPageIndex*MyDataGrid.PageSize +i]=true;
}
else
{
check[MyDataGrid.CurrentPageIndex*MyDataGrid.PageSize +i]=false;
}
}
} private void DisplayCheckState()
{
for (int j=0;j<MyDataGrid.PageSize;j++)
{
CheckBox Che1=(CheckBox)MyDataGrid.Items[j].Cells[0].FindControl("CheckBox1");
if (check[MyDataGrid.CurrentPageIndex*MyDataGrid.PageSize+j])
{
Che1.Checked=true;
}
else
{
Che1.Checked=false;
}
}
}