求教页面传值的问题

cx_greatoo 2008-12-20 09:21:56
我在一个页面打开另一个窗口,代码如下:
protected void imbtnlook_Click(object sender, ImageClickEventArgs e)
{
ImageButton imbtnlook = sender as ImageButton;
GridViewRow row = imbtnlook.NamingContainer as GridViewRow;
int id = row.RowIndex;
if (choose.Items[0].Selected == true)
{
string dpid = GridView1.Rows[id].Cells[0].Text.ToString();
Response.Write("<script language='javascript'>window.open(\"contentlooks.aspx?dpid=" + dpid + "\",\"_blank\",\"width=600,height=480\");</script>");
}
else if (choose.Items[1].Selected == true)
{
string mpid = GridView1.Rows[id].Cells[0].Text.ToString();
Response.Write("<script language='javascript'>window.open(\"contentlooks.aspx?mpid=" + mpid + "\",\"_blank\",\"width=600,height=480\");</script>");
}
else if (choose.Items[2].Selected == true)
{
string drid = GridView2.Rows[id].Cells[0].Text.ToString();
Response.Write("<script language='javascript'>window.open(\"contentlooks.aspx?drid=" + drid + "\",\"_blank\",\"width=600,height=480\");</script>");
}
else if (choose.Items[3].Selected == true)
{
string mrid = GridView2.Rows[id].Cells[0].Text.ToString();
Response.Write("<script language='javascript'>window.open(\"contentlooks.aspx?mrid=" + mrid + "\",\"_blank\",\"width=600,height=480\");</script>");
}
}
在另外一个页面接收,
string dpid = Request.QueryString["dpid"].ToString();
string mpid = Request.QueryString["mpid"].ToString();
string drid = Request.QueryString["drid"].ToString();
string mrid = Request.QueryString["mrid"].ToString();
我的基本需求是当接收的是dpid ,查询table1数据表的内容;接收的是mpid ,查询table2数据表的内容;
接收的是drid ,查询table3数据表的内容;接收的是mrid ,查询table4数据表的内容;
请问这个页面接收传值的代码应该怎么写呢???
...全文
57 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lijunfeng 2008-12-20
  • 打赏
  • 举报
回复
比较应该是== 而不是=
cx_greatoo 2008-12-20
  • 打赏
  • 举报
回复
感谢各位,我基本明白了,在使用1楼提供的代码时,提示“无法将 NULL 转换成“bool”,因为它是一种值类型 ”,这要怎么处理?
tinalucky 2008-12-20
  • 打赏
  • 举报
回复
dpid ,mpid, drid ,mrid
比较笨的方法就是用多个if判断:
如:
if(dpid!="")
{
string strSql="SELECT * FROM 表名 WHERE id=dpid;";
}
else if(mpid!="")
{
string strSql="SELECT * FROM 表名 WHERE id=mpid;";
}
else if(drid!="")
{
string strSql="SELECT * FROM 表名 WHERE id=drid;";
}
else if(mrid!="")
{
string strSql="SELECT * FROM 表名 WHERE id=mrid;";
}
tinalucky 2008-12-20
  • 打赏
  • 举报
回复
[Quote=引用楼主 cx_greatoo 的帖子:]
我在一个页面打开另一个窗口,代码如下:
protected void imbtnlook_Click(object sender, ImageClickEventArgs e)
{
ImageButton imbtnlook = sender as ImageButton;
GridViewRow row = imbtnlook.NamingContainer as GridViewRow;
int id = row.RowIndex;
if (choose.Items[0].Selected == true)
{
string dpid = GridView1.Rows[id].Cells[0].Tex
...
请问这个页面接收传值的代码应该怎么写呢???
[/Quote]
一楼的方法可行,需要进行是否为空的判断。因为你一次只能提交一个id,其余三个都应为空。进行这个判断之后还需要对SELECT语句中的条件进行判断:当某个id为空时,不能做为WHERE条件,只有不为空的再能做为条件。
cx_greatoo 2008-12-20
  • 打赏
  • 举报
回复
判断传出来的是dpid ,mpid, drid ,mrid 中哪一个的判断语句应该怎么写?请帮忙写下判断的代码,谢了!
lijunfeng 2008-12-20
  • 打赏
  • 举报
回复
另外4楼的意思帮你解释一下:虽然你传出的参数不会为空,但是当你传的是dpid那么在取其他三个id的时候就会为空,这样就只需要判断哪个不为空那么传的肯定就是哪个了.
lijunfeng 2008-12-20
  • 打赏
  • 举报
回复
你不如干脆传两个参数算了,一个id,一个tableid,这样就可以很方便的根据tableid来决定查哪个表了啊.
cx_greatoo 2008-12-20
  • 打赏
  • 举报
回复
1楼的方法我没大看懂,我把需求再说得详细些:
我用gridview显示数据表中查询的内容,让我点button“查看内容”时,希望在新窗口页面查看到对应数据行的具体数据,为了简化操作,我把从4个数据表中查询的内容放到一个页面了,用RadioButtonList来确定到底查询哪个表。当查表1时的某一行的详细内容时,传出值dpid ,在另一个页面接受dpid ,凭这个值在表1中查询内容,显示出来。当查表2时的某一行的详细内容时,传出值mpid ,在另一个页面接受mpid ,凭这个值在表2中查询内容,显示出来。以次类推。我不明白1楼的方法判断空表是什么意思,我传出的值不会为空,为空新页面就不需要接收。请不辞辛苦再解释得详细些!谢谢!
对月成双 2008-12-20
  • 打赏
  • 举报
回复
楼上的方法很好,学习。
wuyq11 2008-12-20
  • 打赏
  • 举报
回复
string dpid = Request.QueryString["dpid"]=null?"": Request.QueryString["dpid"].ToString();
string mpid = Request.QueryString["mpid"]=null?"":RequestQueryString["mpid"].ToString();
string drid = Request.QueryString["drid"]=null?"":Request.QueryString["drid"].ToString();
string mrid = Request.QueryString["mrid"]=null?"":Request.QueryString["mrid"].ToString();
string strtable=""
判断是否为空表名赋值给strable

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧