一些空闲时间后图像未从数据库加载

After some idle time images not load from database

我的问题是当我点击产品页面时(在下面的 URL 中)。它运行良好,但在第一次单击产品菜单时经过一些空闲时间后,它不会将产品图像从数据库加载到 Repeater 控件。

我正在使用 Bootstrap 而不是更新面板。

请参阅下文Link。 MySite(See Product Page On First Time And Click After 5 to 10 minute of idle time)

我的ASP.net密码是

<asp:Repeater ID="rptrProduct" runat="server">
                    <ItemTemplate>
                        <div class="portfolio-item col-xs-12 col-sm-4 col-md-3">
                            <div class="recent-work-wrap hovereffect">
                                <img id="dtimg1" runat="server" class="img-responsive imggray" src='<%#Eval("ImagePath")%>' alt="" style="height: 185px!Important;" />
                                <div class="overlay1">
                                    <div class="recent-work-inner">
                                        <a id="aimg2" runat="server" href='<%#Eval("ImagePath")%>' rel="prettyPhoto">
                                            <h2>
                                                <%#Eval("ProductName")%></h2>
                                        </a>
                                        <p>
                                            <a id="adtimg1" runat="server" class="preview" href='<%# string.Format("~/BMSubProduct.aspx?pro={0}", Eval("ProductId")) %>'>
                                                <i class="fa fa-eye"></i>View Products</a>
                                        </p>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </ItemTemplate>
                </asp:Repeater>

我只是不明白为什么第一次它不会加载任何图像。

我的 C# 页面代码是

if(!Page.IsPostBack)
 {
      DataTable dt = DBMaster.getQueryDataTableSchema(query);
        if (dt.Rows.Count > 0)
        {
            string path = GlobalFunction.getPath(1);
            NoProducts.Visible = false;
            for (int i = 0; i < dt.Rows.Count; i++)
                dt.Rows[i]["ImagePath"] = path + Convert.ToString(dt.Rows[i] ["ImagePath"]);
            rptrProduct.DataSource = dt;
            rptrProduct.DataBind();
        }
        else
        {
            NoProducts.Visible = true;
            rptrProduct.DataSource = null;
            rptrProduct.DataBind();
        }
   }
   public static DataTable getQueryDataTableSchema(string query)
   {
    try
    {
        using (IDbConnection con = sq.Open())
        {
            IDbCommand cmd = con.CreateCommand();
            cmd.CommandText = query;
            IDbDataAdapter adp = sq.GetAdapter(cmd);
            DataSet ds = new DataSet();
            adp.FillSchema(ds, SchemaType.Source);
            adp.Fill(ds);
            con.Close();
            return ds.Tables[0];
        }
    }
    catch (Exception ex)
    {
        return new DataTable();
    }
}

page_load 中的主页代码是

if (!Page.IsPostBack)
    {
        SQLString.Config = myconnectionString;
    }

这里NoProduct => No Products Are Available Right Now.

我试过很多类似下面的方法:

  1. EnableViewState="true"EnableViewState="false" 都用于转发器和页面。

  2. 更改 web.config 中的连接字符串,如

    name="SQLConStr" connectionString="Server=localhost;Database=databasename; Uid = username; Pwd = password; Pooling = false; Connection Timeout = 30"
    

此处尝试使用和不使用连接超时和池。

注意:使用MySQL数据库,使用接口打开数据库连接

提前致谢。

EnableViewState="true"

并尝试使用

<asp:Image<asp:HyperLink 控件

而不是

img 和带有 runat="server".

的标签