Adakah yang bisa memberikan contoh yang baik memanggil fungsi JavaScript Dari CodeBehind dan sebaliknya?
c#
javascript
asp.net
ssmsnet
sumber
sumber
Jawaban:
Anda dapat mencoba ini:
sumber
Page.ClientScript.RegisterClientScriptBlock
- kadang diperlukan sebagai gantinya lihat posting ini untuk info . 2. Mungkin perlu disebutkan bahwa agar MyFunction () berfungsi, MyFunction () harus didefinisikan sebelum tag formulir atau di dalamnya, tetapi BUKAN setelah tag akhir </form> (jika tidak, kesalahan yang diharapkan Objek akan terjadi)ScriptManager.RegisterStartupScript(this.Page, typeof(Page), "text", "openDep()", true);
bekerja.this.GetType()
melempar kesalahan untuk saya.asp:UpdatePanel
dan ditulis dalam acara tombol. Yang menyebabkan halaman untuk dipundurkan.C # ke JavaScript: Anda dapat mendaftarkan blok skrip untuk dijalankan di halaman seperti berikut:
ganti
alert()
bagian dengan nama fungsi Anda.Untuk memanggil metode C # dari JavaScript, Anda dapat menggunakan
ScriptManager
ataujQuery
. Saya pribadi menggunakanjQuery
. Anda perlu menghias metode yang ingin Anda panggil dari JavaScript denganWebMethod
atribut. Untuk informasi lebih lanjut tentang memanggil metode C # (dipanggilPageMethod
) darijQuery
Anda dapat merujuk ke pos Dave Ward .sumber
Memanggil fungsi JavaScript dari kode di belakang
Langkah 1 Tambahkan kode Javascript Anda
Langkah 2 Tambahkan 1 Script Manager di webForm Anda dan Tambahkan tombol 1 juga
Langkah 3 Tambahkan kode ini di acara klik tombol Anda
sumber
ScriptManager
seperti dalam jawaban ini, bukanPage.ClientScript
seperti pada jawaban lainnya. Mungkin terkait denganasp:UpdatePanel
komentar di bawah jawaban yang diterima.Anda tidak dapat melakukan ini secara langsung. Dalam WebForms standar JavaScript diinterpretasikan oleh browser dan C # oleh server. Apa yang dapat Anda lakukan untuk memanggil metode dari server menggunakan JavaScript adalah.
WebMethod
sepertiattribute
dalam metode target.ScriptManager
pengaturanEnablePageMethods
sebagaitrue
.PageMethods
.Seperti ini:
Langkah 1
Langkah 2: Menambahkan
ScriptManager
padaPage
Langkah 3: Memanggil metode menggunakan JavaScript
Lihatlah tautan ini.
Untuk memanggil fungsi JavaScript dari server, Anda dapat menggunakan
RegisterStartupScript
:sumber
GetProducts()
Fungsi ini hanyalah fungsi kode-belakang yang akan hidup dalam pengontrol di aplikasi MVC, jadi tag tersebut berada di atas fungsi apa pun yang ingin Anda masukkan ke pengontrol yang ingin Anda panggil dari JavaScript .Jika Anda perlu mengirim nilai sebagai parameter.
sumber
Hal lain yang bisa Anda lakukan adalah membuat variabel sesi yang diatur dalam kode di belakang dan kemudian memeriksa keadaan variabel itu dan kemudian menjalankan javascript Anda. Hal baiknya adalah ini akan memungkinkan Anda untuk menjalankan skrip Anda tepat di tempat yang Anda inginkan daripada harus mencari tahu apakah Anda ingin menjalankannya di DOM atau secara global.
Sesuatu seperti ini: Kode di belakang:
Dalam javascript
sumber
Kamu tidak bisa. Codebehind berjalan di server saat JavaScript berjalan di klien.
Namun, Anda dapat menambah
<script type="text/javascript">someFunction();</script>
output Anda dan dengan demikian menyebabkan fungsi JS dipanggil ketika browser mem-parsing markup Anda.sumber
Anda dapat menggunakan literal:
sumber
IIRC Code Behind dikompilasi di sisi server dan javascript diartikan sebagai sisi klien. Ini berarti tidak ada tautan langsung antara keduanya.
Yang dapat Anda lakukan di sisi lain adalah membuat klien dan server berkomunikasi melalui alat yang bagus yang disebut AJAX. http://en.wikipedia.org/wiki/Asynchronous_JavaScript_and_XML
sumber
Coba ini dalam Code Behind dan itu akan bekerja 100%
Tulis baris kode ini di file Code Behind Anda
Dan ini adalah halaman formulir web
sumber
sumber
Contoh Kerja: _
Kode di Balik
Kemungkinan jebakan: -
CodeBehind="History.aspx.cs"
menunjuk ke halaman yang salahsumber
Saya telah memperhatikan banyak jawaban di sini menggunakan
ScriptManager.RegisterStartupScript
dan jika Anda akan melakukan itu, itu bukan cara yang tepat untuk melakukannya. Cara yang benar adalah menggunakanScriptManager.RegisterScriptBlock([my list of args here])
. Alasannya adalah Anda seharusnya hanya menggunakan RegisterStartupScript ketika halaman Anda dimuat (maka nama RegisterStartupScript).Di VB.NET:
dalam C #:
Tentu saja, saya harap tidak perlu dikatakan bahwa Anda perlu mengganti kunci dengan pengenal kunci Anda dan mungkin harus memindahkan semua ini ke dalam sub / fungsi / metode dan memasukkan kunci dan beberapa JavascriptObject (jika metode javascript Anda mengharuskan arg Anda adalah objek javascript).
Dokumen MSDN:
https://msdn.microsoft.com/en-us/library/bb338357(v=vs.110).aspx
sumber
menggunakan fungsi Anda sudah cukup
sumber
Beginilah cara saya melakukannya.
Markup HTML yang menunjukkan label dan tombol kontrol adalah sebagai berikut.
Fungsi JavaScript ada di sini.
Kode di belakang untuk memicu fungsi JavaScript ada di sini.
sumber
ini bekerja untuk saya
sumber
Karena saya tidak dapat menemukan solusi yang kode di belakang, yang termasuk mencoba
ClientScript
danScriptManager
suka mutanic dan Orlando Herrera mengatakan dalam pertanyaan ini (mereka berdua entah bagaimana gagal), saya akan menawarkan solusi front-end yang menggunakan klik tombol kepada orang lain jika mereka berada di posisi yang sama dengan saya. Ini bekerja untuk saya:Markup HTML:
JavaScript:
Saya hanya menggunakan tombol ASP.NET yang menggunakan
OnClientClick
properti, yang menjalankan fungsi scripting sisi klien, yang menjadi JavaScript. Hal-hal penting yang perlu diperhatikan di sini adalah penggunaanreturn
kata kunci dalam panggilan fungsi dan fungsi itu sendiri. Saya telah membaca dokumen yang tidak digunakanreturn
tetapi masih mendapatkan klik tombol berfungsi - entah bagaimana itu tidak berhasil untuk saya. Thereturn false;
pernyataan dalam fungsi menetapkan postback TIDAK harus terjadi. Anda juga bisa menggunakan pernyataan itu diOnClientClick
properti:OnClientClick="myFunction() return false;"
sumber
Saya menggunakan ScriptManager dalam Code Behind dan bekerja dengan baik.
Jika Anda menggunakan UpdatePanel di ASP Frontend. Lalu, masukkan nama UpdatePanel dan 'nama fungsi' yang didefinisikan dengan tag skrip.
sumber
Terima kasih "Liko", cukup tambahkan komentar ke jawabannya.
Menambahkan tanda kutip tunggal (
'
) ke variabel, jika tidak maka akan memberikan pesan kesalahan:sumber
Anda tidak dapat memanggil fungsi Javascript dari CodeBehind, karena file CodeBehind berisi kode yang mengeksekusi sisi server pada server web. Kode Javascript dijalankan di browser web di sisi klien.
sumber
Anda dapat mengekspos metode C # pada halaman kode untuk dapat dipanggil melalui JavaScript dengan menggunakan atribut ScriptMethod .
Anda tidak dapat memanggil JavaScript dari CodeBehind - kode itu hanya ada di klien.
sumber