onmousedown='window.parent.frames.banner.location.href= "<%# top.aspx?id="+ DataBinder.Eval(Container.DataItem,"id") %>'取不到id的值,语句该怎么写

解决方案 »

  1.   

    onmousedown= window.parent.frames.banner.location.href=<%# "top.aspx?id="+ DataBinder.Eval(Container.DataItem,"id") %>
    改成這樣試試.
      

  2.   

    你把數據顯示在哪個控件中,DataGrid?,沒有控件的話是不支持這種寫法的.
      

  3.   

    <asp:HyperLink ID="HyperLink1" onmousedown=' "window.parent.frames.banner.location.href="+"<%# top.aspx?id="+ DataBinder.Eval(Container.DataItem,"id") %>' onmouseup="window.parent.frames.banner.location.reload()" Text='<%# DataBinder.Eval(Container.DataItem,"md_name")%>' NavigateUrl='<%# "ShowMediaInfo.aspx?id="+ DataBinder.Eval(Container.DataItem,"id")%>' runat="server" Target="main">HyperLink</asp:HyperLink>其中hyperlink是datalist中的
      

  4.   

    我试了onmousedown= 'window.parent.frames.banner.location.href= "top.aspx?id=2"' 会成功的
      

  5.   

    可不可以另写一段javascript脚本,把绑定的数据赋给一个变量?
      

  6.   

    onmousedown= 'window.parent.frames.banner.location.href=top.aspx?id=<%# DataBinder.Eval(Container.DataItem,"id") % > ' 
      

  7.   

    onmousedown='window.parent.frames.banner.location.href="top.aspx?id= <%# DataBinder.Eval(Container.DataItem,"CategoryID") %>"'
    刚才的写错了。
      

  8.   

    CategoryId 换成id,我试了,好用,生成的结果为onmousedown=  'window.parent.frames.banner.location.href= "top.aspx?id=2" ' 
    如果还不对,就检查一下是不是数据库的问题了。
      

  9.   

    我试了!onmousedown=   'window.parent.frames.banner.location.href= "top.aspx?id=2"  '  
    这样可以,但就是那个值绑不上去,谢谢你,我再仔细看看是不是其它问题
      

  10.   

    对了,使用数据控件绑定时,后台要调用控件的DataBind();方法,前台才能 <%# DataBinder.Eval(Container.DataItem,"CategoryID") % >这样绑定啊。
      

  11.   

    我是想把id值传到top.aspx页面中,然后根据这个值获得一条数据中的一个字段然后把这个字段显示在页面上~
    问题就是取不到绑定的id值,后面的NavigateUrl属性都能取到id,就是onmousedown事件下的id取不到,我估计就是语句没写正确,呵呵,也不知道问题出在哪里
      

  12.   

    部分源程序:
    left.aspx
    <asp:DataList ID="DataList1" runat="server" Height="200px">
                            <ItemTemplate>
                            <a><asp:HyperLink ID="HyperLink1" onmousedown='window.parent.frames.banner.location.href="top.aspx?id=<%# DataBinder.Eval(Container.DataItem,"id")%>"' onmouseup="window.parent.frames.banner.location.reload()" Text='<%# DataBinder.Eval(Container.DataItem,"md_name")%>' NavigateUrl='<%# "ShowMediaInfo.aspx?id="+ DataBinder.Eval(Container.DataItem,"id")%>' runat="server" Target="main">HyperLink</asp:HyperLink></a>
                            </ItemTemplate>
                                <ItemStyle Font-Bold="False" Font-Italic="False" Font-Overline="False" Font-Size="9pt"
                                    Font-Strikeout="False" Font-Underline="False" />
                            </asp:DataList>top.aspx.cs
    protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                this.HyperLink1.Attributes.Add("onclick", "javascript:window.open('left.aspx','left')");
                if (Request.QueryString["id"] != null)
                {
                    string id = Request.QueryString["id"].ToString();
                    DataConn con = new DataConn();
                    string sql = "select * from bi_media_info where id='" + id + "'";
                    DataSet ds = con.GetDataSet(sql);
                    this.Image1.ImageUrl = "upfile/" + ds.Tables[0].Rows[0]["md_logo"];
                }
            }
        }
    红色标记的id值取不到
      

  13.   

    另种方法参考:
    变换这种方法可以实现:
    protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
        {
            if (e.Item.ItemType ==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
            {
                string name = ((HyperLink)(e.Item.FindControl("HyperLink1"))).Text;
                Response.Write(((HyperLink)(e.Item.FindControl("HyperLink1"))).Text);
                ((HyperLink)(e.Item.FindControl("HyperLink1"))).Attributes.Add("onclick", "javascript:window.open('top.aspx?md_name=" + name + "','banner')");
            }
        }