从gridview传递querystring中的“calendar.selectedvalue”

时间:2008-11-20 14:46:33

标签: c# asp.net

我想将calendar1.Selecteddatequery string中的gridview传递到另一个gridview(我在sqlquery中写了gridview })在另一页。如下面的代码所示,我尝试传递它,但这不起作用。任何人都可以告诉我如何从calendar

中的query string传递所选日期
      <asp:HyperLinkField DataNavigateUrlFields="LocalIP" 
                DataNavigateUrlFormatString="DailyResults.aspx?
           Terms={0}&column=LocalIP&    
               startdate=Calendar1.SelectedDate.Date.Date.ToShortDateString()
                DataTextField="LocalIP" HeaderText="User" />

3 个答案:

答案 0 :(得分:1)

一种解决方案是在代码隐藏中构建您的URL字符串,而不是在标记中构建它。

覆盖GridView上的RowDataBound方法并以编程方式构建超链接:

protected override gv1_RowDataBound(object sender, GridViewRowEventArgs e)
{
  HyperLink hl = new Hyperlink();
  hl.NavigateUrl = string.Format("DailyResults.aspx?Terms={0}&column=LocalIP&startdate={1}", localIp, Calendar1.SelectedDate.Date.Date.ToShortDateString());
  .. set other hyperlink fields ..
  e.Row.Cells[1].Controls.Add(hl);
}

希望有所帮助!

答案 1 :(得分:0)

在您提供的示例中,它会将字符串的日历部分视为文字并传递您键入的确切值。 为了获得数据,你需要做类似的事情:

<asp:HyperLinkField DataNavigateUrlFormatString="<%=GetSelectedDate()%>....

这是一个关于类后面的代码的方法(或者你可以使用一个属性)来创建你想要的字符串,包括LocalIP绑定数据字段的{0}占位符。

答案 2 :(得分:0)

我假设自渲染gridview以来日历选择值没有改变。

<asp:HyperLinkField DataNavigateUrlFields="LocalIP" 
     DataNavigateUrlFormatString='<%# "DailyResults.aspx?Terms={0}&column=LocalIP&startdate=" + Calendar1.SelectedDate.Date.Date.ToShortDateString() %> DataTextField="LocalIP" HeaderText="User" />