PDA

View Full Version : چرا کنترل من در تابع جاوا اسکریپتی خارجی شناخته نمی شود



آرام جان گل
دوشنبه 27 تیر 1390, 17:41 عصر
سلام
من یک یوزر کنترل دارم که در آن یک دکمه است و روی کلیک آن یک تابع جاوا اسکریپتی را نوشته ام . این تابع جاوا اسکریپتی در یک فایل جاوا اسکریپتی قراردارد.
ورودی این تابع نام یک کنترل دیگر از یوزر کنترل است .زمانی که اجرای برنامه را دیباگ می کنم کنترل صدا زده شده را نمی شناسد و در حقیقت کنترل را به صورت یک رشته به تابع ارسال میکند نه نام کنترل را

کدم را می زارم
کد روی دکمه در یوزر کنترل



<cc1:Btn_Save ID="Btn_Save" runat="server" onclick="Create_StringMax('<%=HF_Fields.ClientID %>');" onbtn_save_clicked="Btn_Save_OnClick" />



تابع جاوا اسکریپتی که به حالت خارجی است




function Create_StringMax(HF_Feilds) {
var FeildNames = '';
var TableNames = '';
var Status = '';
switch (Mode) {
case 'Insert':
for (var i in a) {
FeildNames = FeildNames + i + ',';
TableNames = TableNames + a[i][0] + ',';
status = null;
}
break;
case 'Edit':
for (var i in a) {
FeildNames = FeildNames + i + ',';
TableNames = TableNames + a[i][0] + ',';
status = a[i][1] + ',';
}
break;
}
document.getElementById(HF_Feilds).value = TableNames;
document.getElementById(HF_Tables).value = TableNames;
document.getElementById(HF_Status).value = status;
}



فکر می کنید مشکل از چیست؟
لطفاً به خاطر اینکه یه کم جاوا اسکریپت داره پاکش نکنید چون ممکنه بچه های Asp کا باهاش بر خورد کرده باشن


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

Himalaya
دوشنبه 27 تیر 1390, 18:44 عصر
سلام
وقتی کدی رو به این صورت

OnClientClick="myFunction('<%= Hidden1.ClientID %>')"
مینویسید، این پیغام دریافت میشه
this is not scriptlet. will be output as plain text

کدتون رو به این صورت بنویسید (از نظر ساختار منظورمه)

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script>
function myFunction(ctrlId) {
alert(ctrlId);
return true; // for execute Btn1_Click or false for cancel it
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:HiddenField ID="Hidden1" runat="server" Value="" />
<script>
var hFieldId = '<%= Hidden1.ClientID %>';
</script>
<asp:Button ID="Btn1" Text="Button" runat="server"
OnClientClick="return myFunction(hFieldId)" onclick="Btn1_Click" />
</div>
</form>
</body>
</html>