问(1):在asp.net中的datagrid 绑定一个连接列,比如连接到另一个页面,传递一个参数, 这是可以的 ,只是我想在连接到这个页面时,还想传递其他的参数,也就是传递不止一个参数,该怎么设置?
文(2):在asp.net中的datagrid 绑定一个连接列,获取这个连接列的值作为参数,当该列值包含“+”号时,会发生错误! 像“?”都可以正常连接,不知道哪位高手知道,给与解决!!

解决方案 »

  1.   

    问题1:   多个参数就用这样传 http://www.abc.com/web/chk.aspx?par1=123&par2=abc
    在DATAGRID中绑定过程中要直接加上两个参数就要用模版了,不方便,可以在绑定前,准备数据表的时候就把两个参数合并为一个自负串,如: “http://www.abc.com/web/chk.aspx?par1=123&par2=abc”
    直接整体绑该DATAGRID问题2:估计是自负出现的位置的问题吧,具体情况你也没函索清楚,如果要使用“+”最好确保在参数内部,如果在地址内就出错吧。最好用HTTP转换字符。
      

  2.   

    1.你可以通过Session或者Cache来传递参数,如果参数过多那么你可以构造一个结构或者类然后在传递!
    2.在Url的编码中+不能被识别!你应该用&符号!
      

  3.   

    本人给你询问到了比较权威答案,msdn帮助上写了{}里的参数是0,且只能是0,就是说只能传递一个
    参数(这一点至少在我们项目组都这么认为的)。那如何解决这个问题呢那我们可以拼接,把2个参
    数和成一个字符串,把2个一起作为一个整体存储到数据库中,然后把这个整体取出来传过去,因为
    我们用&拼接的传过去的相当2个参数而且传过去接受后可以直接用!这个过程奥秘就在别名上,微软
    不是只让传一个参数吗,那我们就传2个参数的别名。
    具体写法如下:
    select 'id='+id+'&name='+name parme(这个就是别名)。
    但&只连接字符串,而传的是数,在写sql语句前要把2个参数有数字转成字符串 tostring。
    哈哈,我又和我们单位金牌打手学一手,给大家分享,真的很经典的方法。
      

  4.   

    感谢大家的热情,你们的回答都很精彩
    对问题(1) : 我想传的其他参数值,是在程序运行过程中,才能知道的,并不是存在其他数据表中的! 怎么办?
    对问题(2): 比如在csdn中吧, 我用一个datagrid 来显示帖子标题 (占且允许我用datagrid) ,然后我可以发新贴,当我把帖子的标题中有"+" 号时,连接就会有错!!而像"?" 就可以!!为什么???
      

  5.   

    第一个问题:你可以在.aspx页中用模板列。可在页面中直接写<%= para1%>.
    第二个问题: 你最好把内容进行编码:server.urlencode(para).
      

  6.   

    问题(1) : 
    在cs文件中动态创建datagrid
    HyperLinkColumn blc = new HyperLinkColumn();
    blc.DataTextField = "title";
    blc.DataNavigateUrlField = "id";
    blc.DataNavigateUrlFormatString = "你的页面.aspx?id={0}" + "&value=" + 你想要传递的值;
    DataGrid1.Columns.Add(blc);其他的列一样的添加
    BoundColumn bdc = new BoundColumn();
    .
    .
    DataGrid1.Columns.Add(bdc);ButtonColumn btnc = new ButtonColumn();
    .
    .
    DataGrid1.Columns.Add(btnc);