PDA

View Full Version : مشکل در گذاشتن ادامه مطلب در گریدویو



pure_love
جمعه 03 مرداد 1393, 18:20 عصر
با سلام
من در حال طراحی یک وب سایت خبری هستم
یه مشکل دارم هنوز هم نتونستم حلش کنم.
در صفحه اصلی سایت من یه گریدویو هست که در قسمت Template آن با اضافه کردن Lable و در قسمت DataBind تک تک Lable ها رو ، به ستونهای پایگاه داده خود وصل کردم.(در عکس زیر یک Lable به ستون عکس و یک Lable به ستون متن خبر)
حال در همین گریدویو و در Template یک Button هم گذاشتم بنام "ادامه مطلب" که وقتی روش کلیک میکنم میخوام اطلاعات همون سطر از گریدویو به صفحه دیگر انتقال داده بشه و در صفحه جدید متن اخبارش کامل نمایش بده.
121542

عکس نمایش داده شده یک سطر از گریدویو پروژه منه ، که به فرض کلمه "مذاکره" قسمتی از خبر است من میخوام با زدن دکمه ادامه خبر همین سطر از گریدویو در صفحه دیگه اخبارش کامل نمایش داده بشه.

vistacali
شنبه 04 مرداد 1393, 08:12 صبح
از PostBackUrl استفاده کن، درون Option دکمه

okpnz1
شنبه 04 مرداد 1393, 08:31 صبح
می تونی با استفاده از تگ <a> می تونی این کارو انجام بدی

<a href='<%# Eval("NewsID","shownews.aspx?NID={0}") %>' />

pure_love
شنبه 04 مرداد 1393, 12:07 عصر
می تونی با استفاده از تگ <a> می تونی این کارو انجام بدی

<a href='<%# Eval("NewsID","shownews.aspx?NID={0}") %>' />

ببینید دوستان میخوام با زدن دکمه Session یه مقدار بگیره و بعد در صفحه جدید براساس مقدار Session اخبار همان سطر از گریدویو نمایش داده بشه

اگه راجع به Session اطلاعاتی بهم بدین ممنون میشم

s.karim
شنبه 04 مرداد 1393, 12:43 عصر
اول یه LinkButton میزاری توی Item Template
بعد داخل Propeties اش CommandName = MyTitle
بعد event زیر رو ساخته و داخلش کدهای زیر رو بنویس:



protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "MyTitle")
{
Session["MySession"] = GridView1.DataKeys[int.Parse( e.CommandArgument.ToString())].Value.ToString();
}
}


در این صورت مقدار Id ردیف مورد نظر داخل session ریخته می شود
برای خواندن این مقدار از session نیز از دستور زیر استفاده کنید:


int Id = int.Parse(Session["MySession"].ToString());

pure_love
شنبه 04 مرداد 1393, 13:06 عصر
اول یه LinkButton میزاری توی Item Template
بعد داخل Propeties اش CommandName = MyTitle
بعد event زیر رو ساخته و داخلش کدهای زیر رو بنویس:



protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "MyTitle")
{
Session["MySession"] = GridView1.DataKeys[int.Parse( e.CommandArgument.ToString())].Value.ToString();
}
}


در این صورت مقدار Id ردیف مورد نظر داخل session ریخته می شود
برای خواندن این مقدار از session نیز از دستور زیر استفاده کنید:


int Id = int.Parse(Session["MySession"].ToString());








دوست عزیز من اینارو انجام دادم :
اول یه LinkButton میزاری توی Item Template
بعد داخل Propeties اش CommandName = MyTitle
بعد event زیر رو ساخته و داخلش کدهای زیر رو بنویس:


[CSHARP] protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "MyTitle")
{
Session["MySession"] = GridView1.DataKeys[int.Parse( e.CommandArgument.ToString())].Value.ToString();
}

حالا یه راهنمایی کن میخوام رو همین Linkbutton بزنم بره صفحه بعد نمایش بده، ممنون میشم اگه دقیق راهنمایم کنی.مرسی

s.karim
شنبه 04 مرداد 1393, 13:40 عصر
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "MyTitle")
{
Session["MySession"] = GridView1.DataKeys[int.Parse(e.CommandArgument.ToString())].Value.ToString();
Response.Redirect("Page2.aspx");
}
}



و درون صفحه ی بعد اینو بنویس:

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
int Id = int.Parse(Session["MySession"].ToString());

//and your code...
}
}


دیگه بقیشو بسته به اینکه از روشی برای select از دیتابیس استفاده می کنی و دیتاهای رو نشون میدی ، خودت تکمیل می کنی.

pure_love
شنبه 04 مرداد 1393, 14:35 عصر
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "MyTitle")
{
Session["MySession"] = GridView1.DataKeys[int.Parse(e.CommandArgument.ToString())].Value.ToString();
Response.Redirect("Page2.aspx");
}
}



و درون صفحه ی بعد اینو بنویس:

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
int Id = int.Parse(Session["MySession"].ToString());

//and your code...
}
}


دیگه بقیشو بسته به اینکه از روشی برای select از دیتابیس استفاده می کنی و دیتاهای رو نشون میدی ، خودت تکمیل می کنی.

دوست عزیز همه این کار ها کردم ولی بازم نشد وقتی روی LinkButton کلیک میکنم همون صفحه Default باز میکنه و نمیره به ادامه مطلب!
ببینید کد های صفحه دوم من اینجوریه:

if (!IsPostBack)
{
int Id = int.Parse(Session["MySession"].ToString());

SqlConnection connect = new SqlConnection("Data Source=.;Initial Catalog=javanodanesh;Integrated Security=True");

string s = "select * from insertnews where ID=@d";

SqlCommand cmd1 = new SqlCommand(s, connect);

connect.Open();

cmd1.Parameters.AddWithValue("@d", Id);

DataTable dt = new DataTable();

SqlDataAdapter da = new SqlDataAdapter(cmd1);

da.Fill(dt);

GridView1.DataSource = dt;

GridView1.DataBind();

connect.Close();
}

s.karim
یک شنبه 05 مرداد 1393, 10:45 صبح
کد صفحه ی دوم درسته مشکلی نداره
سورس html رو بزار

pure_love
یک شنبه 05 مرداد 1393, 12:24 عصر
کد صفحه ی دوم درسته مشکلی نداره
سورس html رو بزار

ببخشید منظورتون از سورس Html چیه؟ راهنمایی کنید

s.karim
یک شنبه 05 مرداد 1393, 12:56 عصر
سورس اون صفحه ای رو که توش LinkButton گذاشتی رو می خوام:

121603

pure_love
یک شنبه 05 مرداد 1393, 14:40 عصر
سورس اون صفحه ای رو که توش LinkButton گذاشتی رو می خوام:

121603

<%@ Page Title="" Language="C#‎" MasterPageFile="~/Default.Master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
<style type="text/css">
.style23
{
width: 201px;
}
</style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<p align="center">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px"
CellPadding="3" DataSourceID="SqlDataSource1" style="margin-left: 0px"
Width="548px" PageSize="1">
<Columns>
<asp:TemplateField HeaderText="اخبار" HeaderImageUrl="~/img/header-contact.png">
<ItemTemplate>
<table class="style11">
<tr>
<td class="style23">
<asp:Image ID="Image14" runat="server" Height="133px"
ImageUrl='<%# Eval("pic","imgcontact/{0}") %>' Width="200px" />
<br />
<%--m--%>
<asp:LinkButton ID="LinkButton2" runat="server" Text='<%# Eval("titr") %>'></asp:LinkButton>
<br />
<asp:Label ID="Label10" runat="server" Text='<%# Eval("contact") %>'></asp:Label>
<br />
<br />
</td>
<td>
<br />
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False"
BackColor="White" BorderColor="#336666" BorderStyle="Double" BorderWidth="3px"
CellPadding="4" DataSourceID="SqlDataSource2" GridLines="Horizontal"
PageSize="4">
<Columns>
<asp:TemplateField>
<ItemTemplate>
&nbsp;<asp:Image ID="Image15" runat="server" Height="39px"
ImageUrl='<%# Eval("pic","imgcontact/{0}") %>' Width="60px" />
&nbsp;<asp:LinkButton ID="LinkButton1" runat="server" onclick="LinkButton1_Click"
Text='<%# Eval("titr") %>' CommandName="mytitle"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="White" ForeColor="#333333" />
<HeaderStyle BackColor="#336666" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#336666" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="White" ForeColor="#333333" />
<SelectedRowStyle BackColor="#339966" Font-Bold="True" ForeColor="White" />
<SortedAscendingCellStyle BackColor="#F7F7F7" />
<SortedAscendingHeaderStyle BackColor="#487575" />
<SortedDescendingCellStyle BackColor="#E5E5E5" />
<SortedDescendingHeaderStyle BackColor="#275353" />
</asp:GridView>
<br />
<br />
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:javanodaneshConnectionString %>"
SelectCommand="SELECT [pic], [titr] FROM [insertnews]"></asp:SqlDataSource>
</td>
</tr>
</table>
<br />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="White" ForeColor="#000066" />
<HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
<RowStyle ForeColor="#000066" />
<SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
<SortedAscendingCellStyle BackColor="#F1F1F1" />
<SortedAscendingHeaderStyle BackColor="#007DBB" />
<SortedDescendingCellStyle BackColor="#CAC9C9" />
<SortedDescendingHeaderStyle BackColor="#00547E" />
</asp:GridView>
<br />
</p>
<p>
&nbsp;</p>
<p>
&nbsp;</p>
<p>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:javanodaneshConnectionString %>"
SelectCommand="SELECT [titr], [pic], [contact] FROM [insertnews]">
</asp:SqlDataSource>
</p>
</asp:Content>

anvar
یک شنبه 05 مرداد 1393, 15:25 عصر
نگاه شما به حل مسئله از صفر اشتباهه - شما می خواهید یک سایت خبری بسازید که دسترسی به اون و بحث سئو حرف اول رو میزنه ...
طبق حرف شما
حال در همین گریدویو و در Template یک Button هم گذاشتم بنام "ادامه مطلب" که وقتی روش کلیک میکنم میخوام اطلاعات همون سطر از گریدویو به صفحه دیگر انتقال داده بشه و در صفحه جدید متن اخبارش کامل نمایش بده.

اصلا چه نیازی به انتقال اطلاعات سطر گرید ویو به صفحه نمایش اخبار هست - مشکل دیگه استفاده از کنترل Button میشه که الزامی باشه - مشکل سوم استفاده از سشن هست که برای سایت خبری به این شکل مصیبت میشه

بهترین راه ارسال ID خبر مورد نظر از طریق کوئری استرینگ به صفحه نمایش خبره - که سرور چندان درگیر انتقال از یک صفحه به صفحه دیگه نمیشه - ثانیا در بحث سئو هم مشکلی پیش نمییاد - نیازی به سسشن و منابع سرور هم نیست - بهتره از یک تگ a معمولی HTML استفاده کنید تا نیازی به پردازش اضافی دیگه ای نباشه (طبق پاسخ شماره 3 در بالا)

اگر این سیستم قراره که بصورت عملیاتی مورد استفاده قرار بگیره - استفاده از دیتاادپتور - دیتاسورس و حتی کنترل گرید ویوو برای نمایش جزئیات خبر و ... رو بذارید کنار چون آخرش میفهمید که روش کارتون اشتباهه

anvar
یک شنبه 05 مرداد 1393, 15:28 عصر
نگاه شما به حل مسئله از صفر اشتباهه - شما می خواهید یک سایت خبری بسازید که دسترسی به اون و بحث سئو حرف اول رو میزنه ...
طبق حرف شما
حال در همین گریدویو و در Template یک Button هم گذاشتم بنام "ادامه مطلب" که وقتی روش کلیک میکنم میخوام اطلاعات همون سطر از گریدویو به صفحه دیگر انتقال داده بشه و در صفحه جدید متن اخبارش کامل نمایش بده.

اصلا چه نیازی به انتقال اطلاعات سطر گرید ویو به صفحه نمایش اخبار هست - مشکل دیگه استفاده از کنترل Button میشه که الزامی باشه - مشکل سوم استفاده از سشن هست که برای سایت خبری به این شکل مصیبت میشه

بهترین راه ارسال ID خبر مورد نظر از طریق کوئری استرینگ به صفحه نمایش خبره - که سرور چندان درگیر انتقال از یک صفحه به صفحه دیگه نمیشه - ثانیا در بحث سئو هم مشکلی پیش نمییاد - نیازی به سسشن و منابع سرور هم نیست - بهتره از یک تگ a معمولی HTML استفاده کنید تا نیازی به پردازش اضافی دیگه ای نباشه (طبق پاسخ شماره 3 در بالا)

اگر این سیستم قراره که بصورت عملیاتی مورد استفاده قرار بگیره - استفاده از دیتاادپتور - دیتاسورس و حتی کنترل گرید ویوو برای نمایش جزئیات خبر و ... رو بذارید کنار چون آخرش میفهمید که روش کارتون اشتباهه

pure_love
یک شنبه 05 مرداد 1393, 17:21 عصر
نگاه شما به حل مسئله از صفر اشتباهه - شما می خواهید یک سایت خبری بسازید که دسترسی به اون و بحث سئو حرف اول رو میزنه ...
طبق حرف شما
حال در همین گریدویو و در Template یک Button هم گذاشتم بنام "ادامه مطلب" که وقتی روش کلیک میکنم میخوام اطلاعات همون سطر از گریدویو به صفحه دیگر انتقال داده بشه و در صفحه جدید متن اخبارش کامل نمایش بده.

اصلا چه نیازی به انتقال اطلاعات سطر گرید ویو به صفحه نمایش اخبار هست - مشکل دیگه استفاده از کنترل Button میشه که الزامی باشه - مشکل سوم استفاده از سشن هست که برای سایت خبری به این شکل مصیبت میشه

بهترین راه ارسال ID خبر مورد نظر از طریق کوئری استرینگ به صفحه نمایش خبره - که سرور چندان درگیر انتقال از یک صفحه به صفحه دیگه نمیشه - ثانیا در بحث سئو هم مشکلی پیش نمییاد - نیازی به سسشن و منابع سرور هم نیست - بهتره از یک تگ a معمولی HTML استفاده کنید تا نیازی به پردازش اضافی دیگه ای نباشه (طبق پاسخ شماره 3 در بالا)

اگر این سیستم قراره که بصورت عملیاتی مورد استفاده قرار بگیره - استفاده از دیتاادپتور - دیتاسورس و حتی کنترل گرید ویوو برای نمایش جزئیات خبر و ... رو بذارید کنار چون آخرش میفهمید که روش کارتون اشتباهه

این دستور :
<a href='<%# Eval("NewsID","shownews.aspx?NID={0}") %>' />
چجوری ازش تو سایتم استفاده کنم؟و کجا باید نوشته بشه؟اصلا چجوریه اگه میشه کامل با جزییات توضیح بدین چیکار کنم؟!

pure_love
یک شنبه 05 مرداد 1393, 17:58 عصر
این دستور :
<a href='<%# Eval("NewsID","shownews.aspx?NID={0}") %>' />
چجوری ازش تو سایتم استفاده کنم؟و کجا باید نوشته بشه؟اصلا چجوریه اگه میشه کامل با جزییات توضیح بدین چیکار کنم؟!

مرسی دوست عزیز با راهنمایی شما به جوابم رسیدم!
تشکر

pure_love
یک شنبه 05 مرداد 1393, 17:59 عصر
نگاه شما به حل مسئله از صفر اشتباهه - شما می خواهید یک سایت خبری بسازید که دسترسی به اون و بحث سئو حرف اول رو میزنه ...
طبق حرف شما
حال در همین گریدویو و در Template یک Button هم گذاشتم بنام "ادامه مطلب" که وقتی روش کلیک میکنم میخوام اطلاعات همون سطر از گریدویو به صفحه دیگر انتقال داده بشه و در صفحه جدید متن اخبارش کامل نمایش بده.

اصلا چه نیازی به انتقال اطلاعات سطر گرید ویو به صفحه نمایش اخبار هست - مشکل دیگه استفاده از کنترل Button میشه که الزامی باشه - مشکل سوم استفاده از سشن هست که برای سایت خبری به این شکل مصیبت میشه

بهترین راه ارسال ID خبر مورد نظر از طریق کوئری استرینگ به صفحه نمایش خبره - که سرور چندان درگیر انتقال از یک صفحه به صفحه دیگه نمیشه - ثانیا در بحث سئو هم مشکلی پیش نمییاد - نیازی به سسشن و منابع سرور هم نیست - بهتره از یک تگ a معمولی HTML استفاده کنید تا نیازی به پردازش اضافی دیگه ای نباشه (طبق پاسخ شماره 3 در بالا)

اگر این سیستم قراره که بصورت عملیاتی مورد استفاده قرار بگیره - استفاده از دیتاادپتور - دیتاسورس و حتی کنترل گرید ویوو برای نمایش جزئیات خبر و ... رو بذارید کنار چون آخرش میفهمید که روش کارتون اشتباهه

مرسی دوست عزیز با راهنمایی شما به جوابم رسیدم!
تشکر