.aspx程序如下:
<asp:repeater id="Repeater" runat="server">
<ItemTemplate>
<TR>
<TD width="20%"><input id="Checkbox1" type=checkbox runat="server" NAME="Repeater" value='<%# DataBinder.Eval(Container.DataItem, "id")%>'></TD>
<TD width="70%"><%# Del_ExtName(DataBinder.Eval(Container.DataItem, "song_name").ToString())%></TD>
<TD width="7%"><A href='http://<%=song_url%><%# DataBinder.Eval(Container.DataItem, "song_name")%>' target=_blank>下载</A></TD>
</TR>
</ItemTemplate>
</asp:repeater>我通过上面程序绑定的值:
<A href='http://<%=song_url%><%# DataBinder.Eval(Container.DataItem, "song_name")%>' target=_blank>下载</A>
当有单击事件(if(this.IsPostBack)==true)发生后<%=song_url%>绑定的值不存在了。
然而<%# DataBinder.Eval(Container.DataItem, "song_name")%>绑定的数据还存在。请教什么方法能使<%=song_url%>一直存在和<%# DataBinder.Eval(Container.DataItem, "song_name")%>一样。

解决方案 »

  1.   

    这两种绑定方式。。
    怎么使他们的生存期一样。。
    使<%=song_url%>和<%# DataBinder.Eval(Container.DataItem, "song_name")%>一样存在。
      

  2.   

    这两种绑定方式。。
    怎么使他们的生存期一样。。
    使<%=song_url%>和<%# DataBinder.Eval(Container.DataItem, "song_name")%>一样存在。
      

  3.   

    <%=song_url%>改成<%# DataBinder.Eval(Container.DataItem, "song_url")%>
      

  4.   

    将song_url保存到视图缓存中====CSDN 小助手 V2.0 2005年10月16日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/10/16/504620.aspx
    下载:http://szlawbook.com/csdnv2/csdnv2.rar为神六喝彩,向所有科技工作者致敬!
    拒绝日货。
      

  5.   

    只是简单的这么改应该不会有什么结果吧。
    <%=song_url%>改成<%# DataBinder.Eval(Container.DataItem, "song_url")%>
      

  6.   

    前提是song_url也是数据源里的,就跟song_name一样。
      

  7.   

    Page_load了就需要重新设置好值。
      

  8.   

    我的song_url就不是数据源中绑定的。
    所以并没有采用<%# DataBinder.Eval(Container.DataItem, "song_url")%>的方式我的song_url在.cs文件中是这样申明的:
    public string song_url;
    还请CloneCenter(复制中心)兄台给介绍一个办法
      

  9.   

    我的.cs代码如下:public string song_url;
    private void Page_Load(object sender, System.EventArgs e)
    {
      if(!this.IsPostBack)
      {
        if(Request.QueryString["Id"] != null && Request.QueryString["Id"].Trim() !="")
         {
    Id = this.Request.QueryString["Id"].Trim();
    BindData(Id);
          }

       }song_url就是在通过BindData(Id)赋值的。
      

  10.   

    我的.cs代码如下:public string song_url;
    private void Page_Load(object sender, System.EventArgs e)
    {
      if(!this.IsPostBack)
      {
        if(Request.QueryString["Id"] != null && Request.QueryString["Id"].Trim() !="")
         {
    Id = this.Request.QueryString["Id"].Trim();
    BindData(Id);
          }

       }song_url就是在通过BindData(Id)赋值的。
      

  11.   

    我的.cs代码如下:public string song_url;
    private void Page_Load(object sender, System.EventArgs e)
    {
      if(!this.IsPostBack)
      {
        if(Request.QueryString["Id"] != null && Request.QueryString["Id"].Trim() !="")
         {
    Id = this.Request.QueryString["Id"].Trim();
    BindData(Id);
          }

       }
       public string custID
       {
           get 
    {
      return _custID;
    }
           set 
    {
      _custID = value;
    }    }song_url就是在通过BindData(Id)赋值给custID的,this.custID = song_url;
    但是我的前台的<%# custID%>却得不到什么值。
      

  12.   

    你可以采用属性呀!就是viewstate["custID"]就可以保存了呀
      

  13.   

    还请 huangj110 兄台:
    祥细些
      

  14.   

    我的.cs代码如下:public string song_url;
    private void Page_Load(object sender, System.EventArgs e)
    {
      if(!this.IsPostBack)
      {
        if(Request.QueryString["Id"] != null && Request.QueryString["Id"].Trim() !="")
         {
    Id = this.Request.QueryString["Id"].Trim();
    BindData(Id);
          }

       }
       public string custID
       {
           get 
    {
      return _custID;
    }
           set 
    {
      _custID = value;
    }    }song_url就是在通过BindData(Id)赋值给custID的,this.custID = song_url;
    但是我的前台的<%# custID%>却得不到什么值。
    但是我在BindData(Id)中却能得到结果:
    this.custID = song_url;
    this.Response.Write(custID);
    return;可能是页面需要绑定吧!
    this.Page.DataBind();
      

  15.   

    Request.QueryString["Id"] 有没有值呀,那些我不懂,但是为什么我用Request.QueryString["Id"] 时取不到值
      

  16.   

    Request.QueryString["Id"]只能判断有没有值。
    兄台不要跑题。
      

  17.   

    我的.cs代码如下:public string song_url;
    private void Page_Load(object sender, System.EventArgs e)
    {
      if(!this.IsPostBack)
      {
        if(Request.QueryString["Id"] != null && Request.QueryString["Id"].Trim() !="")
         {
    Id = this.Request.QueryString["Id"].Trim();
    BindData(Id);
          }

       }
       public string custID
       {
           get 
    {
      return _custID;
    }
           set 
    {
      _custID = value;
    }    }song_url就是在通过BindData(Id)赋值给custID的,this.custID = song_url;
    但是我的前台的<%# custID%>却得不到什么值。
    但是我在BindData(Id)中却能得到结果:
    this.custID = song_url;
    this.Response.Write(custID);
    return;可能是页面需要绑定吧!
    this.Page.DataBind();
      

  18.   

    对不起!你所发的消息是旧版消息,今天才看到.你在后台定义了public变量,前台是可以接收得到.
    但你又把接收的过程放在if(!this.IsPostBack)里面,导致在页面提交时,该变量没有得到赋值,所以消失了.
    你可以这样做
    public string song_url;
    private void Page_Load(object sender, System.EventArgs e)
    {
      if(!this.IsPostBack)
      {
        if(Request.QueryString["Id"] != null && Request.QueryString["Id"].Trim() !="")
         {
    Id = this.Request.QueryString["Id"].Trim();
    BindData(Id);
    ViewState["song_url"] = song_url;
          }   }
    else
    {
    if(ViewState["song_url"] != null)
    {
    song_url = ViewState["song_url"].ToString();
    }
    }
    当第一次取到值的时候,将该值写到viewstate里面,在提交页面的时候,每次均判断该viewstate里面有没有值,如果有,则取值.这样即可实现你的想法.