无法获取div_images的内部内容,因为内容不是文字的。 [英] Cannot get inner content of div_images because the contents are not literal.

查看:41
本文介绍了无法获取div_images的内部内容,因为内容不是文字的。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嘿伙计们我犯了错误。请参阅下面的代码&建议我做错了什么:



 <   div     id   =  gallery >  
< div id = div_images < span class =code-attribute> runat = 服务器 > < / div >
< / div >



  string  ProductImages =  string  .Empty; 
string str_query = string .Empty;
DataTable dt_Common = new DataTable();

受保护 void Page_Load( object sender,EventArgs e)
{
if (!IsPostBack)
{
bind_images() ;
}
}

私有 void bind_images( )
{
if (Request.QueryString [ id]!= null
{
str_query = 从tbl_product_images中选择top(5)图像,其中productinfo_id =' + Request.QueryString [ id]。ToString()+ ;
dt_Common = new CommonClass()。bind_department(str_query);
如果(dt_Common.Rows.Count> 0
{
for int i = 0 ; i < dt_Common.Rows.Count; i ++)
{
div_images.InnerHtml + = < a class = \activeborder \data-image = + dt_Common.Rows [i] [ image] + data-zoom-image = + dt_Common.Rows [i] [ image] + >< img src = + dt_Common.Rows [i] [ image] + />< / a>; // 在此行中收到错误。
}
}
}
else
{

}
}



我从最后几天尝试过,但没有得到解决方案。任何建议都非常感谢!

解决方案

关注如何获取服务器端元素的innerhtml使用c#(内置另一个服务器端控件) [ ^ ]。

引用:

你不能在div上调用InnerHtml,除非它的内容是文字的(即那里)不是包含在其中的服务器控件)。但你可以通过这样的方式强制它渲染成字符串:



  var  sb =  new  StringBuilder(); 
mainDiv.RenderControl( new HtmlTextWriter( new StringWriter(sb)));

string s = sb.ToString();


嘿伙计我解决了这个问题。请参阅下面的解决方案

 StringBuilder _StrB =  new  StringBuilder() ; 

if (Request.QueryString [ id]!= null
{
str_query = 从tbl_product_images中选择top(5)图像,其中productinfo_id =' + Request.QueryString [ id]。ToString()+ ' ;
dt_Common = new CommonClass()。bind_department(str_query);
如果(dt_Common.Rows.Count> 0
{
for int i = 0 ; i < dt_Common.Rows.Count; i ++)
{
image.Src = dt_Common.Rows [i] [ image]。ToString()。替换( < span class =code-string>〜
..);
_StrB.Append( < a id = + i + class = \activeborder \data-image = + dt_Common.Rows [i] [ image]。ToString()+ < span class =code-string> data-zoom-image = + dt_Common.Rows [i] [ image]。ToString()+ >< img src = + dt_Common.Rows [i] [ image]。ToString()+ />< / a>);
}

}
string AllHTMLImages = _StrB.ToString()。替换( ..);
div_images.InnerHtml = AllHTMLImages;
}
其他
{

}


Hey guys I am getting above error. Please see in my code below & suggest me what I was doing wrong :


<div id="gallery">
<div id="div_images"   runat="server"> </div>
</div>


string ProductImages = string.Empty;
    string str_query = string.Empty;
    DataTable dt_Common = new DataTable();

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            bind_images();
        }
    }

    private void bind_images()
    {
        if (Request.QueryString["id"] != null)
        {
            str_query = "select top(5) image from tbl_product_images where productinfo_id='" + Request.QueryString["id"].ToString() + "'";
            dt_Common = new CommonClass().bind_department(str_query);
            if (dt_Common.Rows.Count> 0)
            {
                for (int i = 0; i < dt_Common.Rows.Count; i++)
                {
                    div_images.InnerHtml += "<a  class=\"activeborder\" data-image=" + dt_Common.Rows[i]["image"] + " data-zoom-image=" + dt_Common.Rows[i]["image"] + "><img src=" + dt_Common.Rows[i]["image"] + " /></a>";     // Getting error in this line.
                }
            }
        }
        else
        {

        }
    }


I tried it from last days but doesn''t get the solution. Any suggestion really appreciate !

解决方案

Follow how can get innerhtml of a server side element with c# (with another server-side controls inside)[^].

Quote:

You can''t invoke InnerHtml on a div unless its contents are literal (i.e. there aren''t server controls contained inside it). But you can force it to render to a string by doing something like this:

var sb = new StringBuilder();
mainDiv.RenderControl(new HtmlTextWriter(new StringWriter(sb)));

string s = sb.ToString();


Hey Guys I have Solved this. See my solution below !

StringBuilder _StrB = new StringBuilder();

    if (Request.QueryString["id"] != null)
    {
        str_query = "select top(5) image from tbl_product_images where productinfo_id='" + Request.QueryString["id"].ToString() + "'";
        dt_Common = new CommonClass().bind_department(str_query);
        if (dt_Common.Rows.Count> 0)
        {
            for (int i = 0; i < dt_Common.Rows.Count; i++)
            {
                image.Src = dt_Common.Rows[i]["image"].ToString().Replace("~", "..");
                _StrB.Append("<a id=" + i + " class=\"activeborder\" data-image=" + dt_Common.Rows[i]["image"].ToString() + " data-zoom-image=" + dt_Common.Rows[i]["image"].ToString() + "><img src=" + dt_Common.Rows[i]["image"].ToString() + " /></a>");
            }

        }
        string AllHTMLImages = _StrB.ToString().Replace("~", "..");
        div_images.InnerHtml = AllHTMLImages;
    }
    else
    {

    }


这篇关于无法获取div_images的内部内容,因为内容不是文字的。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆