写项目的时候,boss说用三层架构
于是乎GridView 的数据源就来自DataTable
之后就要加“修改”,“删除”,“查看”(在另外的页面执行相应操作)
ok,咱弄了几个HyperLinkField
HyperLinkField hlf = new HyperLinkField();
hlf.DataNavigateUrlFields = new string[] { "XianP_ID" };
hlf.DataNavigateUrlFormatString = "XianPGL_SHOW.aspx?XianP_ID={0}";
gridview.Columns.Add(hlf);
ok,大家看到了,很丑陋,使用的QueryString 进行传值,值暴露在URL 上,很不安全
想如果用Tranfer 的话自然就不会暴露,但是HyperLinkField 好像不支持?
求博客园达人解,
另外,如果是我这样的话,就会有三个Columns ,不知道怎样将其合并成一个column? 求解
先谢谢各位了,期待您的解答
transfer是发送控件方式,根据你的要求,传到另一个页面那怎么去获取gridview的值呢?这是一个问题点,会很不方便,你传个text还好了,gridview太大了
安全是相对概念,你传递值如果需要保密,可以用session
其实你可以尝试将url的参数进行加密,然后再接受的page再进行解密.这不是一种更巧妙的解决办法.
另:记得原来可以通过this.PreviousPage来得到上一页面的对象实例的,如果这样的话,就可以按照楼的思路拿值了,但刚试了一下this.PreviousPage老为空,奇怪!
三个Columns合并成一个Columns的话使用模板列就可以了。安全考虑的话,可以对QueryString进行加解密。