PDA

View Full Version : سوال: مشکل با datalist



uness12
جمعه 01 خرداد 1394, 16:41 عصر
سلام دوستان من با datalist تونستم paging رو پیاده سازی کنم عناصر داخل datalist هم تشکیل شده از چند تا lable و یک عکس ، میخوام وقتی موس رفت روی تصویر ، تصویر عوض بشه و تونستم انجام بدم ولی مشکل اساسی اینجاست که وقتی صفحه بعد میرم دیگه اسکریپ مربوط به تغییر عکس کار نمیکنه لطفا کمک کنید کد ها رو هم میزارم ببینید.
html


<asp:DataList ID="DataList1" runat="server" RepeatDirection="Horizontal" RepeatColumns="4">
<ItemTemplate>
<div style="width:300px;height:400px;padding:20px 50px 0px 0px;text-align:center;">
<div style="width:300px;height:400px;text-align:center">


<asp:LinkButton ID="LinkButton1" runat="server" OnCommand="LinkButton1_Command" onmousemove="move" CommandName="send" CommandArgument='<%# Eval("id") %>'>
<img width="300" height="350" id="<%# "p" + Eval("id") %>" src="<%#"images/content/"+ Eval("id")+"/1/front.jpg" %>" />

</asp:LinkButton>


</div>

<div style="font-size:large;text-align:center;margin-top:-50px">
<asp:Label ID="Label1" runat="server" Text='<%# Eval("cat_type")+" "+ Eval("cat_sex")%>' Font-Size="Medium" Font-Bold="True" />
<br />

برند: <asp:Label ID="lblContactName" runat="server" Text='<%# Eval("brand") %>' Font-Size="Medium" ForeColor="#CC0000" Font-Bold="True" />
<br />
قیمت : <asp:Label ID="lblCompanyName" runat="server" Text='<%# Eval("price") %>' Font-Size="Medium" ForeColor="#CC0000" Font-Bold="True" />
<br />
<center>
<div id="sabad">
<asp:ImageButton ID="ImageButton1" runat="server" Width="140" Height="50" ImageUrl="~/images/bb.png"></asp:ImageButton>

</div>

</center>
</div>
</div>
<br /><br /><br />
<script type="text/javascript">


document.getElementById('<%# "p" + Eval("id") %>').onmouseover = function (e) {
var p = document.getElementById('<%# "p" + Eval("id") %>');
p.src = '<%# "images/content/"+Eval("id")+"/1/free.jpg" %>';
}
document.getElementById('<%# "p" + Eval("id") %>').onmouseout = function (e) {
var p = document.getElementById('<%# "p" + Eval("id") %>');
p.src = '<%# "images/content/"+Eval("id")+"/1/front.jpg" %>';
}
</script>

</ItemTemplate>







</asp:DataList>
<br />
<asp:Repeater ID="rptPager" runat="server">
<ItemTemplate>
<asp:LinkButton ID="lnkPage" runat="server" Text='<%#Eval("Text") %>' CommandArgument='<%# Eval("Value") %>'
CssClass='<%# Convert.ToBoolean(Eval("Enabled")) ? "page_enabled" : "page_disabled" %>'
OnClick="Page_Changed" OnClientClick='<%# !Convert.ToBoolean(Eval("Enabled")) ? "return false;" : "" %>'></asp:LinkButton>
</ItemTemplate>
</asp:Repeater>


c#

private void GetCustomersPageWise(int pageIndex)
{

using (SqlConnection con = new SqlConnection(@"Server=REZA-PC\SQLEXPRESS;Database=dbp;Trusted_Connection=True"))
{
using (SqlCommand cmd = new SqlCommand("GetCustomersPageWise", con))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@PageIndex", pageIndex);
//cmd.Parameters.AddWithValue("@PageSize", PageSize);
cmd.Parameters.Add("@RecordCount", SqlDbType.Int, 4);
cmd.Parameters["@RecordCount"].Direction = ParameterDirection.Output;
con.Open();
IDataReader idr = cmd.ExecuteReader();
DataList1.DataSource = idr;
DataList1.DataBind();

idr.Close();


con.Close();
int recordCount = Convert.ToInt32(cmd.Parameters["@RecordCount"].Value);
this.PopulatePager(recordCount, pageIndex);


}
}
}


private void PopulatePager(int recordCount, int currentPage)
{
double dblPageCount = (double)((decimal)recordCount / Convert.ToDecimal(PageSize));
int pageCount = (int)Math.Ceiling(dblPageCount);
List<ListItem> pages = new List<ListItem>();
if (pageCount > 0)
{
for (int i = 1; i <= pageCount; i++)
{
pages.Add(new ListItem(i.ToString(), i.ToString(), i != currentPage));
}
}
rptPager.DataSource = pages;
rptPager.DataBind();
}
protected void Page_Changed(object sender, EventArgs e)
{
pageIndex = int.Parse((sender as LinkButton).CommandArgument);
this.GetCustomersPageWise(pageIndex);

}

malloc
جمعه 01 خرداد 1394, 17:02 عصر
فکر کنم کد زیر کارتو راه بندازه



<script type="text/javascript">
Sys.Application.add_load(Set_Load);
</script>

uness12
جمعه 01 خرداد 1394, 17:28 عصر
میشه بگی این کد چیه؟

malloc
جمعه 01 خرداد 1394, 17:50 عصر
تا اونجا که من میدونم تو اینجو صفحات که صفحه بندی بدون رفرش شدن داره بعد از یکبار تعویض صفحه دیگه اسکریپتهای صفحه کار نمیکنن ... این کد به فراخونی مجدد اونا کمک میکنه و شما باید اسم اون تابعی که میخوایید و جای Set_Load بنویسید ... حالا مطمعنا یه سرچی در مورد Sys.Application.add_load بکنید جوابتونو میگیرید

uness12
جمعه 01 خرداد 1394, 18:09 عصر
فکر میکنم مشکل سر id تگ img است ، موقعی که صفحه لود میشه از 1 تا 8 به تگ img آی دی میدم و همین که میرم page دومی دوباره id از 1 تا 8 تکرار میشه در حالی که باید از 9 به بعد باشه و فکر کنم همین مشکل ساز میشه خواهش میکنم یه نگاه بندازبد از صبح درگیرشم هنوز درست نشده!.

uness12
جمعه 01 خرداد 1394, 18:14 عصر
حق با شما بود مشکل ایجا بود که صفحه رفرش نمیشد حالا حداقل دلیلشو فهمیدم ممنون.