mamad_za
سه شنبه 11 آذر 1393, 00:45 صبح
سلام دوستان من یه صفحه گالری درست کردم که عکس ها رو توش لود می کنه
شیوه کار به این شکل هست که ما گروه بندی داریم وقتی رو هر گروه که کلیک می کنیم عکس های اون گروه رو لود می کنه که با Update panel به صورت ajax این کار رو دارم انجام میدم . گروه ها تویه dropdownlist ریخته شده . الان مشکل اینه که وقتی روی گروه ها کلیک می کنیم انتخاب گروه بعد از لود یهو خودش میره رو ایندکس اول و فقط همون رو لود می کنه و روی بقیه گروه ها میزنم اونا لود نمی شن اینم کدا:
protected void Page_Load(object sender, EventArgs e)
{
filldrpdownlist();
}
protected void drpPic_SelectedIndexChanged(object sender, EventArgs e)
{
fillpic(drpPic.SelectedValue);
}
protected void fillpic(string p1)
{
using (SqlConnection con = new SqlConnection(connectionstring))
{
using (SqlCommand cmd = new SqlCommand("Select top(7) [PicId],[Title],[PicUrl] FROM dbo.Gallery WHERE @p1=GroupId ORDER BY PicID DESC", con))
{
cmd.Parameters.AddWithValue("@p1",p1);
using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
con.Open();
DataTable dt = new DataTable();
sda.Fill(dt);
ArrayList values = new ArrayList();
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
string picid = dt.Rows[i]["PicId"].ToString();
string picaddress = dt.Rows[i]["PicUrl"].ToString().Replace("~", "..");
string title = dt.Rows[i]["Title"].ToString();
values.Add(new code.dataimg(picid, picaddress, title));
rpt1.DataSource = values;
rpt1.DataBind();
}
}
}
}
}
}
protected void filldrpdownlist()
{
drpPic.Items.Clear();
SqlConnection con = new SqlConnection(connectionstring);
SqlCommand cmd = new SqlCommand("SELECT * FROM dbo.GroupWood", con);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
con.Open();
sda.Fill(dt);
con.Close();
if (dt.Rows.Count > 0)
{
drpPic.DataSource = dt;
drpPic.DataTextField = "GroupText";
drpPic.DataValueField = "GroupId";
drpPic.DataBind();
}
}
}
<div class="rptimage">
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:DropDownList ID="drpPic" AutoPostBack="true" OnSelectedIndexChanged="drpPic_SelectedIndexChanged" runat="server" />
<asp:Repeater ID="rpt1" runat="server">
<ItemTemplate>
<div class="recent-job">
<div class="view"> <div class="view-title"></div>
<img src="<%#Eval("url") %>" alt="<%#Eval("title")%>" width="300px" height="200px" />
</div>
</div>
</ItemTemplate>
</asp:Repeater>
<asp:UpdateProgress ID="UpdateProgress1" runat="server">
<ProgressTemplate>
loading...
</ProgressTemplate>
</asp:UpdateProgress>
</ContentTemplate>
</asp:UpdatePanel>
شیوه کار به این شکل هست که ما گروه بندی داریم وقتی رو هر گروه که کلیک می کنیم عکس های اون گروه رو لود می کنه که با Update panel به صورت ajax این کار رو دارم انجام میدم . گروه ها تویه dropdownlist ریخته شده . الان مشکل اینه که وقتی روی گروه ها کلیک می کنیم انتخاب گروه بعد از لود یهو خودش میره رو ایندکس اول و فقط همون رو لود می کنه و روی بقیه گروه ها میزنم اونا لود نمی شن اینم کدا:
protected void Page_Load(object sender, EventArgs e)
{
filldrpdownlist();
}
protected void drpPic_SelectedIndexChanged(object sender, EventArgs e)
{
fillpic(drpPic.SelectedValue);
}
protected void fillpic(string p1)
{
using (SqlConnection con = new SqlConnection(connectionstring))
{
using (SqlCommand cmd = new SqlCommand("Select top(7) [PicId],[Title],[PicUrl] FROM dbo.Gallery WHERE @p1=GroupId ORDER BY PicID DESC", con))
{
cmd.Parameters.AddWithValue("@p1",p1);
using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
con.Open();
DataTable dt = new DataTable();
sda.Fill(dt);
ArrayList values = new ArrayList();
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
string picid = dt.Rows[i]["PicId"].ToString();
string picaddress = dt.Rows[i]["PicUrl"].ToString().Replace("~", "..");
string title = dt.Rows[i]["Title"].ToString();
values.Add(new code.dataimg(picid, picaddress, title));
rpt1.DataSource = values;
rpt1.DataBind();
}
}
}
}
}
}
protected void filldrpdownlist()
{
drpPic.Items.Clear();
SqlConnection con = new SqlConnection(connectionstring);
SqlCommand cmd = new SqlCommand("SELECT * FROM dbo.GroupWood", con);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
con.Open();
sda.Fill(dt);
con.Close();
if (dt.Rows.Count > 0)
{
drpPic.DataSource = dt;
drpPic.DataTextField = "GroupText";
drpPic.DataValueField = "GroupId";
drpPic.DataBind();
}
}
}
<div class="rptimage">
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:DropDownList ID="drpPic" AutoPostBack="true" OnSelectedIndexChanged="drpPic_SelectedIndexChanged" runat="server" />
<asp:Repeater ID="rpt1" runat="server">
<ItemTemplate>
<div class="recent-job">
<div class="view"> <div class="view-title"></div>
<img src="<%#Eval("url") %>" alt="<%#Eval("title")%>" width="300px" height="200px" />
</div>
</div>
</ItemTemplate>
</asp:Repeater>
<asp:UpdateProgress ID="UpdateProgress1" runat="server">
<ProgressTemplate>
loading...
</ProgressTemplate>
</asp:UpdateProgress>
</ContentTemplate>
</asp:UpdatePanel>