PDA

View Full Version : سوال: کمک فوری برای فراخوانی یک تابع jquery از codebehind



minaalamshahi
پنج شنبه 23 آذر 1391, 08:58 صبح
سلام

من نیاز دارم که بتونم بعد از اجرای یه تابع سمت codebehind یه تابع jquery رو از همون جا فراخوانی کنم
و اجراش کنم

و برم سمت client و تابع jquery و از پارامتری که پاس دادم استفاده کنم

راستش من دارم با پورت کار می کنم
وقتی از پورت با تابع data recive مقدار رو دریافت می کنم

لازم دارم که مقدار رو توی textbox بریزم اما نمیشه چون صفحه refresh نمیشه می خوام ببینم اگه یه تابع jquery رو فراخوانی کنم می تونم مشکلم رو حل کنم و از سمت client مقدار رو توی text box بریزم

ممنون

micro_bhk
پنج شنبه 23 آذر 1391, 09:36 صبح
سلام
شاید این کارتو راه بندازه:


function myFunc(item)
{
alert(item);
}





int i = 50;
RunSrcript(this.Page, "myFunc("+i.tostring()+")");






public static void RunSrcript(System.Web.UI.Page page, string script)
{
page.ClientScript.RegisterStartupScript(typeof(Sys tem.Web.UI.Page), "RunScriptInPage", script, true);
}

minaalamshahi
پنج شنبه 23 آذر 1391, 09:52 صبح
سلام
شاید این کارتو راه بندازه:


function myFunc(item)
{
alert(item);
}





int i = 50;
RunSrcript(this.Page, "myFunc("+i.tostring()+")");






public static void RunSrcript(System.Web.UI.Page page, string script)
{
page.ClientScript.RegisterStartupScript(typeof(Sys tem.Web.UI.Page), "RunScriptInPage", script, true);
}


کد سوم رو کجا باید تعریف کنم؟

minaalamshahi
پنج شنبه 23 آذر 1391, 09:55 صبح
ممنون ولی نشد

minaalamshahi
پنج شنبه 23 آذر 1391, 09:56 صبح
من حتی بهش گفتم button1_click رو فراخوانی کن یا pageload رو تا صفحه refresh بشه و مقدار بیاد توی textbox اما نمیشه

siavashdez
پنج شنبه 23 آذر 1391, 10:04 صبح
اره با استفاده از jquery می تونی این کار رو انجام بدی . دقیقا بگو چه کاری می خوای بکنی تا برات توضیحش بدم

minaalamshahi
پنج شنبه 23 آذر 1391, 10:09 صبح
ممنون که وقت میزارین
من از یه read اطلاعات رو می خونم به صورت زیر



public static SerialPort COM = new SerialPort("COM5", 9600, System.IO.Ports.Parity.None, 8, System.IO.Ports.StopBits.One);




protected void Button1_Click(object sender, EventArgs e) {
try
{
if (COM.IsOpen)
{
COM.Close();
Button1.Text = "Start";
}
else
{
COM.Open();
Button1.Text = "Stop";
}
}
catch (Exception ex)
{ }
}


حالا مشکل اینجاست



protected void COM_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
TextBox1.Text = (COM.ReadExisting());
Session["data"] =TextBox1.Text;
}

اطلاعاتم رو می خوام روی text box نشون بدم اما نمیشه
اطلاعات میگیره اما نشون نمیده چون refersh نداریم دیگه

siavashdez
پنج شنبه 23 آذر 1391, 10:21 صبح
خوب شما باید در ابتدا در داخل page_Load برای هر کدوم از این مواردی که هست (چه stop و چه start )کدی برای Button1 بنویسید

Button1.Attributes.Add("onclick", (COM.IsOpen?"$('#"+TextBox1.ClientID+"').val('Open'); ": "$('#"+TextBox1.ClientID+"').val('Close');"));
اینطوری می تونی کنترلش کنی
اگه مشکل داشتی بهم بگو

minaalamshahi
پنج شنبه 23 آذر 1391, 10:36 صبح
خوب من این کد رو توی page load باید بنویسم؟

من الان این کد رو نوشتم و بعد از خوندن پورت هم button1_click رو فراخوانی کردم

نمیدونم منظورتون رو درست فهمیدم یا نه ولی

درست نشد با کاری که کردم

minaalamshahi
پنج شنبه 23 آذر 1391, 11:28 صبح
کسی راهی برای مشکل من نداره

minaalamshahi
پنج شنبه 23 آذر 1391, 16:54 عصر
من چطوری می تونم از داخل تابع datarecive مقدار سریال پورتم رو textbox بریزم