none
页面传递参数,在其他论坛发了几张帖子,希望问题在这里解决呀 RRS feed

  • 问题

  • 开发环境:vs2003
    语言:c#
    问题描述:内容很简单,有两个页面,A和B,就是把A页面的参数传递到B页面去。那么我遇到的问题是:
    1、A页面有一个数据展示控件:datagrid,显示3个字段,序号,姓名,手机费用
    2、A页面有一个网上下载的分页控件:AspNetPager,用来分页数据。
    3、A页面中,在列‘姓名’上有个超级链接,点击弹出B页面,显示该用户的详细信息,链接的绑定是在前台文件中完成的
    4、序号的生成,使用的索引加分页控件的值,在后台完成的,序号是一个模板列,用了一个Label绑定
    问题:在点击姓名后需要把自动生成序号传递到B页面,注意分页控件对序号的影响,
    我的序号在后台这样生成:
    private void dg_WorkTypeList_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
      {
       Label lbl = (Label)e.Item.FindControl("lbl_id");
       
        int base_num;     
       base_num=this.AspNetPager.PageSize*(this.AspNetPager.CurrentPageIndex-1);
       
      
       if(e.Item.ItemIndex != -1 )
       {
        //取得当前项的索引值加1,因为项的索引值是从0开始的.
        int orderID = e.Item.ItemIndex+1+base_num;
        //设置第一列为的单元格内容为当前项索引值加1
        lbl.Text=orderID.ToString();  
       }
      }
    现在要在前台文件调用该lbl标签的值,可是无法取到,有其他人给出的方法如下:
      <a target=_blank href='MeetingInfo2.aspx?Id=<%# DataBinder.Eval( Container.DataItem, "m_id" ) %>&type=1&m_no=<%# ((Label)((DataGridItem)Container.DataItem).FindControl("lbl_id")).Text %>'>
    <%# Show(DataBinder.Eval( Container.DataItem, "m_Title" ).ToString()) %>
    </a>

    就是这一句:m_no=<%# ((Label)((DataGridItem)Container.DataItem).FindControl("lbl_id")).Text %>,显示报错:指定的转换无效,请问高手,怎么处理?请讲解的详细些,到底怎么能实现?非常谢谢

    2009年7月4日 6:45

答案

  • <%# ((Label)((GridViewRow)Container).FindControl("lbl_id")).Text%>
    知识改变命运,奋斗成就人生!
    2009年7月4日 9:03
    版主
  • 通过 DataRowView 取数据集中的值也是可以的

    <%# ((System.Data.DataRowView)Container.DataItem)["字段名"].ToString() %>

    知识改变命运,奋斗成就人生!
    2009年7月4日 9:05
    版主

全部回复