PDA

View Full Version : چرا بعد از دوبار کلیک در صفحه جدید باز میشه



ClaimAlireza
سه شنبه 10 مهر 1386, 21:44 عصر
با سلام...

با جستجویی که در سایت کردم نتیجه گرفتم که وقتی بخایم روی LinkButton کلیک کنیم و در صفحه جدید مطلب رو ببینیم از کد javascript ای مثل زیر استفاده کنیم:



LinkButton2.Attributes.Add("Onclick", "javascript:window.open('" + "MainConcern.aspx?aconcern1=" + ((LinkButton)item.FindControl("LinkButton2")).Text + "')");


حالا اگه دوستان یه لطفی بکنن یه سری به سایت زیر بزنن وقتی روی عنوان یه مقاله کلیک میکنی هیچ اتفاقی نمیفته ولی اگر دوباره کلیک کنی توی صفحه جدید باز میکنه ....

مشکل کجاست؟:متفکر:

http://www.avayeguitar.com

shahab_ksh
چهارشنبه 11 مهر 1386, 00:56 صبح
رویداد LinkButton رو هم بزارید

Behrouz_Rad
چهارشنبه 11 مهر 1386, 10:48 صبح
با سلام...

با جستجویی که در سایت کردم نتیجه گرفتم که وقتی بخایم روی LinkButton کلیک کنیم و در صفحه جدید مطلب رو ببینیم از کد javascript ای مثل زیر استفاده کنیم:



LinkButton2.Attributes.Add("Onclick", "javascript:window.open('" + "MainConcern.aspx?aconcern1=" + ((LinkButton)item.FindControl("LinkButton2")).Text + "')");


حالا اگه دوستان یه لطفی بکنن یه سری به سایت زیر بزنن وقتی روی عنوان یه مقاله کلیک میکنی هیچ اتفاقی نمیفته ولی اگر دوباره کلیک کنی توی صفحه جدید باز میکنه ....

مشکل کجاست؟:متفکر:

http://www.avayeguitar.com

نه علیرضا جان...!
در این مواقع باید از کنترل Hyperlink استفاده کنی نه LinkButton
LinkButton بدین شکل عمل می کنه که تابع doPostBack__ رو به روال onclick تگ A اضافه می کنه تا بتونی روال Click سمت سرور رو پیاده سازی کنی.
با کدی که نوشتی، تو سعی در Override کردن روال onclick سمت کلاینت کردی که این با ذات کنترل LinkButton مغایر هست!
به همین دلیل کدت کاری انجام نمیده...

موفق باشید.

ClaimAlireza
چهارشنبه 11 مهر 1386, 13:05 عصر
با سلام و سپاس فراوان...

قبلا رویداد linkButton به شکل زیر بود:




LinkButton LinkButton1 = sender asLinkButton;
TableCell cell = LinkButton1.Parent asTableCell;
GridViewRow item = cell.Parent asGridViewRow;
Response.Redirect("~/DetailMain.aspx?a_id="+((Label)item.FindControl("Label1")).Text);


ولی نمیشد یه مقاله جدید رو با کلیک راست کردن و open in new window در پنجره جدید باز کرد. که طبق فرمایش شما این طبیعیه...بنابراین تمام مقاله ها رو می بایست تو یک صفحه دید که کار کاربر سخت میشد.

مشکل من اینجاست که hyperLink رویداد onClick نداره.

من از رویداد initو load هم استفاده کردم ولی با کد زیر مقدار label مورد نظر رو نمیخونه و فقط یه صفحه جدید باز میکنه بدونه مقدار دهی a_id.



protectedvoid HyperLink1_Load(object sender, EventArgs e)
{
HyperLink HyperLink1 = sender asHyperLink;
TableCell cell = HyperLink1.Parent asTableCell;
GridViewRow item = cell.Parent asGridViewRow;
HyperLink1.NavigateUrl = "~/DetailMain.aspx?a_id=" + ((Label)item.FindControl("Label1")).Text;
}

Behrouz_Rad
چهارشنبه 11 مهر 1386, 17:01 عصر
کار خودت رو سخت نکن!
هر چند که میتونی از Hyperlink استفاده کنی، اما مورد کاربرد تگ A در اینجا بیشتره.
به شکل ذیل بنویس:


<a onclick='javascript:window.open("myPage.aspx?id=<%# Eval( "myLinkField" )%>") ; return false;' href='javascript:Void(0)' target="_blank"><%# Eval( "mySubjectField" )%></a>


موفق باشید.

hamishe bahar
چهارشنبه 30 آبان 1386, 10:05 صبح
ببخشید آقای راد این کد مال repeater است اگر بخواهیم ازgridview استفاده کنیم باید چه کدی بنویسیم چون حتما باید از hyperlink استفاده کرد

Behrouz_Rad
چهارشنبه 30 آبان 1386, 10:17 صبح
نه، مستقل از کنترله...