一些空闲时间后图像未从数据库加载
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.
我试过很多类似下面的方法:
EnableViewState="true"
和 EnableViewState="false"
都用于转发器和页面。
更改 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".
的标签
我的问题是当我点击产品页面时(在下面的 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.
我试过很多类似下面的方法:
EnableViewState="true"
和EnableViewState="false"
都用于转发器和页面。更改 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".
的标签