سلام
من کد های جاوا اسکریپت رو در یک فایل قرار دادم و اون و به پروژه اضافه کردم اما نمی دونم چه طوری اونو تو یه content pages صدا بزنم یه اگه می شه کمک کنید
سلام
من کد های جاوا اسکریپت رو در یک فایل قرار دادم و اون و به پروژه اضافه کردم اما نمی دونم چه طوری اونو تو یه content pages صدا بزنم یه اگه می شه کمک کنید
توی Header HTML اینو باید بنویسی
<head runat="server">
<title>Untitled Page</title>
<script src="YourJavaScript.js" language="javascript" type="text/javascript" ></script>
</head>
آقا این کد رو کجا باید بزاریم ؟
در مستر که می زاریم عمل نمی کنه
در دی تل هم که head رو نمی شناسه؟!
من این کد ها رو قبلا تست کرده بودم اما مشکل این head هستش؟!!!!!!!!
شما مطمئن هستید که اینو در مستر دیتل استفاده کردی نه یه فرم معمولی؟!
من یه نمونه توی MasterPage ساختم و JS را توی Header MaserPage با کد بالا اضافه کردم کاملاً کار می کنه و هیچ مشکلی نداره.
ما می خوام ازکد های در دی تل استفاده کنیم
فرض کن مثلا یک گرید در یکی از فرمهایی دارم که به مستر پیج اضافه می شه (کانتنت ها) اونجا می خوایم فایل جاوا رو فراخوانی کنیم.
خوب فقط کافیه توابع موجود توی JS را در ContentPage صدا بزنی
مثلاً می تونی توی خصوصیت OnClientClick یک دکمه ASP.NET نام تابع JS را که می خواهی صدا بزنی را وارد کنی ، این طوری و قتی روش کلیک کردی تابع JS صدا زده می شه.
اقا من کد فراخوانی فایل رو در هدر مستر نوشتم و به قول شما نام یک تابع رو هم در خصوصیت OnClientClick کانتنت نوشتم اما باز هم فرقی نکرد؟
اگه می شه یه مثال کوچولو برامون بذارید
با تشکر از توجه شما
اگر تابع شما FN() باشه باید نام تابع را در Property مربوطه اینجوری بنویسی :
FN()
سلام آقا من این پرانتز ها یادم رفته بود
حالا یک واکنشی رو از فایل جاوا دارم اما هنون نمی تونم از اون توابع جواب رو بگیرم برای مثال من یک تابع دارم که تایید حذف رو نشون می ده اما با اون که من در موقع انصراف مقدار false رو بر می گردونم اما باز هم صفحه پست بک می شه یهنی د رهمه احمال صفحه پست بک می شه و بهتر بگم نتایج توابع من برای فرم جاریم اعمال نمی شه!
این هم تابع لازم به توضیح هست که پیغام ها درست نمایش داده می شند اما جوابهای نه؟!
function confirmDelete()
{
var xCounter = 0;
if (chk_Array_IDs != null)
{
for (i=0;i<chk_Array_IDs.length;i++)
{
var ref_chk = document.getElementById(chk_Array_IDs[i]);
if (ref_chk != null)
if (ref_chk.checked == true)
++xCounter;
}
if (xCounter == 0)
{
alert("!هیچ رکوردی انتخاب نشده است");
return false;
}
else
{
var ret_confirm = confirm("آیا مطمئن به حذف " +xCounter+ " رکورد انتخابی هستید؟");
if (ret_confirm == true)
{
checkclick = "true";
return true;
}
else
return false;
}
}
}
با تشکر از توجه شما جناب راد
باید تابع جاوااسکریپتت رو بنویسی (مثلا تابعی با نام yourFunc) این تابع را در قسما<head>برنامه ات و در بین تگهای<script> .... </script>بنویس و بعد در PageLoad برنامه ات از دستور زیر استفاده کنی:
submitButton.Attributes.Add("onclick", "return yourFunc();");
البته این واسهC#هست اما فکر می کنم برای Vb هم فرقی نکنه!
موفق باشی.
با قرار داده return مشکل من تا حد زیادی حل شد اما هنوز برای بعضی توابع هم مشکل دارم
برای توابعی که از دستور زیر استفاده شده (به علت این که همیشه مقدار null رو داره)
document.getElementById(rowID)
اینم تابع
function rowAppearanceOnDeleteMode(rowID)
{
var color = document.getElementById(rowID).style.backgroundCol or;
var ref_check = document.getElementById(rowID).getElementsByTagNam e("input").item(1);
if (ref_check.checked)
{
document.getElementById(rowID).style.backgroundCol or = '#FFEEC2';
document.getElementById(rowID).style.fontStyle = 'italic';
}
else
{
document.getElementById(rowID).style.backgroundCol or = '#DEDFDE';
document.getElementById(rowID).style.fontStyle = 'normal';
}
}
این getElementById خالی هست rowid هم ایندکس رکورد های دیتاگراید ویو توی یکی از کتنت پیج هام هست
کلا روش کار رو سعی کردم از همون برنامه آقای راد که برای گراید ویو گذاشتن قرار بدم ؟!
مشکل کار کجاست؟!
تابع تو الان هیچ returnِی نداره باید return false رو هم بهش اضافه کنی ، من یه تیکه کد نوشتم شاید به دردت بخوره:
<script language="javascript">
function rowAppearanceOnDeleteMode(rowID)
{
var color = document.getElementById(rowID).style.backgroundCol or;
document.getElementById(rowID).style.backgroundCol or = '#FFEEC2';
document.getElementById(rowID).style.fontStyle = 'italic';
return false;
}
</script><form id="form1" runat="server">و در نهایت:
<div>
<table ID="Table1" runat="server" width="100%">
<tr Id="Row1"><td>Salam</td></tr>
<tr Id="Row2"><td>Hello</td></tr>
</table>
<asp:Button ID="Button1" Text="submit" runat="server" />
</div>
</form>
protected void Page_Load(object sender, EventArgs e)
{
Button1.Attributes.Add("onClick","return rowAppearanceOnDeleteMode('Row1')");
}
protected void Button1_Click(object sender, EventArgs e)
{
// here your code
}
در اینجا با submit شدن فرم رنگ سطر مورد نظر بدون Submit شدن و Refresh شدن صفحه عوض می شه.
امیدوارم مشکلت حل بشه!
سلام
یک گام به کمک شما رفتم جلوتر الان این null هست
document.getElementById(rowID).getElementsByTagNam e("input").item(1);
وقتی میرم روی رکورد ها رنگشون عوض می شه اما وقتی از اون رد می شم به حالت قبل بر نمی گرده ؟!
یک گام دیگه هم رفتم الان همه مشکل حل شده با قرار دادن 0 بجای یک در کد بالا
اما گراید من یک خط درمیان رنگ رکورد ها با هم فرق می کنه اما با این روش همه یکی می شه حالا من می خوام یک متغییر تعریف کنم و وقتی می رم رو رکوردی رنگ اونو توش قرار بدم و وقتی می خوام برم رنگ قبلی رو از این متغیر بخونم و اونو بزارم جای قبلی
اما نمی تونم یک متغیر در کد جاوا تعریف کنم رنگ رو در خودش نگه داره
چه طوری باید این کارو بکنم و اینکه اصلا این کار درسته؟
دوستان عزیز
من یکم گیج شدم من الان یک صفحه مانند زیر دارم
<%@ Page Language="VB" MasterPageFile="~/Master.master" AutoEventWireup="false" CodeFile="Default3.aspx.vb" Inherits="Default3" title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<br />
<asp:Button ID="Button1" runat="server" onmousedown="DeleteBox(this)" Text="Button" /><br />
<input id="Button2" onclick="showmessage()" type="button" value="button" /><asp:HiddenField
ID="HF1" runat="server" Value='"masoud"' />
</asp:Content>
حالا یکی از دوستان بگن که من این کدهای اسکریپ زیر را باید کجا بزارم تا دستور
document.getElementById("Label1").innerText = ""
کار کند من خودم به صورت زیر گذاشتم ولی پیغام زیر را می دهد
<%@ Page Language="VB" MasterPageFile="~/Master.master" AutoEventWireup="false" CodeFile="Default3.aspx.vb" Inherits="Default3" title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">
<script language =javascript >
function showmessage()
{
document.getElementById("Label1").innerText = ""
}
</script>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<br />
<asp:Button ID="Button1" runat="server" onmousedown="DeleteBox(this)" Text="Button" /><br />
<input id="Button2" onclick="showmessage()" type="button" value="button" /><asp:HiddenField
ID="HF1" runat="server" Value='"masoud"' />
</asp:Content>
erro: 'document.getElementById("...")' is null or nut an object
البته شایان ذکر است که من در این صفحه خالی که در اوی پستم آورده ام تگهای html , head هم قرار داده ام ولی خطا میدهد که منطقی هم باید باشد چون صفحه من داخل یک مستر پیج است لطفا اگر میشود تکهای صفحه من را هم بگین چی باید باشد
با تشکر از دوستان عزیز
پیشنهاد :
شما می توانید با استفاده از Page.ClientScript فایل JS خود را در رویداد Load صفحه خود رجیستر کنید و از آن استفاده کنید.