PDA

View Full Version : باز کردن یک صفحه جدید هنگام کلیک در Grid



آرام جان گل
پنج شنبه 12 آذر 1388, 11:45 صبح
سلام

من یک سوال جاوا اسکریپتی دارم ولی خواهش می کنم اجازه بدید داخل قسمت ASp.net بنویسم چون اصل کار با asp.net است گفتم شاید در تالار جاوا اسکریپت جواب نگیرم

من یک دکمه در گرید دارم که می خوام با زدن این دکمه وارد یک صفحه ای بشم که New window باشه و یکسری پارامتر هم براش می فرستم ولی ارور زیر ار به من میده

لطفا راهنمایی کنید تا کدم اصلاح بشه
مشکل من یا قسمت Onclick است.

کد من


<asp:ImageButton ID="PicBtn" runat="server" CommandArgument='<%#Eval("xCode_Ano_PK")%>'
CommandName="select" ImageUrl="~/IMG/image_pencil.png" OnClick="window.open('EduImage.aspx?ImageID=<%= xCode_Ano_PK %>', '_blank','width=200 , height=300, toolbar=no')" />


و اروری که می ده اینه:


Too Many Characters in Character literal

hofa_7
جمعه 13 آذر 1388, 00:46 صبح
شما یه بار بجای '_blank'
بزارید '' ببینید کار می کنه یا نه چون من اینجوری می نویسم و تاحالا جواب گرفتم

یعنی خالی بزارید

آرام جان گل
شنبه 14 آذر 1388, 10:30 صبح
سلام

کاری که گفتید انجام دادم ولی جواب نداد. یعنی دقیقا به تعداد ورودیهای تابع open این ارور را تکرا ر می کند.

مهدی کرامتی
شنبه 14 آذر 1388, 19:41 عصر
به این مثال دقت کنید:
<%@ Page Language="C#‎‎‎" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TestWebApplication._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<script type="text/javascript" language="javascript">
function openPopup(id) {
window.open('WebForm1.aspx?ID=' + id, '_blank','width=200 , height=300, toolbar=no');
}
</script>
<form id="form1" runat="server">

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID"
DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True"
SortExpression="ID" />
<asp:BoundField DataField="DisplayOrder" HeaderText="DisplayOrder" SortExpression="DisplayOrder" />
<asp:BoundField DataField="CategoryName" HeaderText="CategoryName" SortExpression="CategoryName" />
<asp:TemplateField HeaderText="Test">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server"
onclientclick='<%# "openPopup("+Eval("ID") +")" %>'>LinkButton</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</form>
</body>
</html>

1- در این مثال من عمل باز کردن پنجره جدید را بخاطر جلوگیری از پیچیدگی به یک تابع جاوا اسکریپت تبدیل کردم (خطوط 9 تا 12).
2- در LinkButton مورد نظر بجای OnClick رویداد OnClientClick را میبایست مقدار دهید. همچنین در شکل Binding Expression ای که می نویسید بجای %=> میبایست از #%> استفاده کنید.

آرام جان گل
چهارشنبه 25 آذر 1388, 10:08 صبح
سلام

حال اگه من بخوام دقیقا همین کد را روی دکمه ای بنویسم که در گرید نیست یعنی به جایی Bind نیست و نمی تونم از تابع Eval استفاده کنم ولی نیاز دارم که تعدادی پارامتر را پاس بدهم این پارمتر ها پارامتر های سمت سی شارپ هستند

من اینو میدونم که میشه متغییر های سمت کد های سی شارپ را در کد های جاوا اسکریپت استفاده کرد ولی Syntax اون را بلد نیستم

اگه کسی می تونه کمکم کنه
مرسی

آرام جان گل
چهارشنبه 25 آذر 1388, 12:55 عصر
سلام

من می خوام این تا بعی که در OnClientClick نوشته شده منظورم این تابع است



onclientclick='<%# "openPopup("+Eval("ID") +")" %>'


را در سمت سی شارپ با کد Attribute.add بنویسم ولی نمیدونم کتیشن و تک کتیشن را چطوری بنویسم که جواب بده

راهنمایی کنید
مرسی