জাভাস্ক্রিপ্ট থেকে ASP.NET ফাংশন কল?


140

আমি এএসপি.নেটে একটি ওয়েব পৃষ্ঠা লিখছি। আমার কিছু জাভাস্ক্রিপ্ট কোড রয়েছে এবং আমার কাছে ক্লিক ইভেন্টের সাথে জমা দেওয়া বোতাম রয়েছে।

জাভাস্ক্রিপ্টের ক্লিক ইভেন্টের সাথে এএসপিতে তৈরি করা কোনও পদ্ধতির কল করা কি সম্ভব?


1
আপনার কিছু অ্যাজাক্স লাইব্রেরি ব্যবহার করা উচিত যেমন: অ্যান্থেম
জেডিকিউইপার

উত্তর:


92

ঠিক আছে, আপনি যদি এজ্যাক্স বা অন্য কোনও উপায়ে এটি করতে না চান এবং একটি সাধারণ এএসপি.নাইট পোস্টব্যাক ঘটতে চান তবে আপনি এটি কীভাবে করবেন (অন্য কোনও লাইব্রেরি ব্যবহার না করে) এখানে:

যদিও এটি কিছুটা জটিল ... :)

আমি। আপনার কোড ফাইলে (ধরে নেওয়া যে আপনি সি # এবং .NET 2.0 বা তার পরে ব্যবহার করছেন) আপনার পৃষ্ঠা শ্রেণিতে নিম্নলিখিত ইন্টারফেসটি এটির মতো দেখানোর জন্য যুক্ত করুন

public partial class Default : System.Web.UI.Page, IPostBackEventHandler{}

আ। এই (ব্যবহার যোগ করা উচিত Tab- Tab: আপনার কোড ফাইল এই ফাংশন)

public void RaisePostBackEvent(string eventArgument) { }

III। জাভাস্ক্রিপ্টে আপনার অনক্লিক ইভেন্টে, নিম্নলিখিত কোডটি লিখুন:

var pageId = '<%=  Page.ClientID %>';
__doPostBack(pageId, argumentString);

এটি আপনার জাভাস্ক্রিপ্ট থেকে পাস করা 'যুক্তিযুক্ত স্ট্রিং' হিসাবে 'ইভেন্টআরগমেন্ট' সহ আপনার কোড ফাইলে 'রাইসপোস্টব্যাকইভেন্ট' পদ্ধতিটিকে কল করবে। এখন, আপনি আপনার পছন্দ মতো অন্য কোনও ইভেন্টে কল করতে পারেন।

পিএস: এটি 'আন্ডারস্কোর-আন্ডারস্কোর-ডোপোস্টব্যাক' ... এবং, সেই অনুক্রমের কোনও স্থান থাকা উচিত নয় ... কোনওভাবে ডাব্লুএমডি আমাকে একটি অক্ষর অনুসরণ করে আন্ডারস্কোরগুলিতে লেখার অনুমতি দেয় না!


1
আমি এটি বাস্তবায়নের চেষ্টা করছি কিন্তু এটি সঠিকভাবে কাজ করছে না। পৃষ্ঠাটি আবার পোস্ট করছে, তবে আমার কোডটি কার্যকর হচ্ছে না। আমি যখন পৃষ্ঠাটি ডিবাগ করি তখন রায়সপোস্টব্যাকএভেন্ট কখনই বরখাস্ত হয় না। একটি জিনিস যা আমি আলাদাভাবে করেছি তা হ'ল আমি এটি একটি এসপেক্স পৃষ্ঠার পরিবর্তে ব্যবহারকারীর নিয়ন্ত্রণে করছি।
merk

এটি আমাকে একটি ত্রুটি দেয় যা প্রত্যাশিত বস্তু বলে। আমি এটিকে এভাবে window.onbeforeunload = confirmExit; //debugger; function confirmExit() { var pageId = '<%= Page.ClientID %>'; var argumentString = 'ReleaseLock'; __doPostBack(pageId, argumentString); }
ডেকেছি

যে কারণেই হোক না কেন, আমি এটি onkeyupইভেন্টের সাথে কাজ করতে পারিনি । পেয়েছেন JavaScript runtime error: '__doPostBack' is undefined। আমি C # এবং ASP.NET 2.0 ব্যবহার করছি।
অ্যান্ড্রু টি।

58

__doPostBack()পদ্ধতি ভাল কাজ করে।

আরেকটি সমাধান (খুব হ্যাকিশ) হ'ল আপনার মার্কআপে কেবল একটি অদৃশ্য এএসপি বোতাম যুক্ত করা এবং এটি একটি জাভাস্ক্রিপ্ট পদ্ধতিতে ক্লিক করা।

<div style="display: none;">
   <asp:Button runat="server" ... OnClick="ButtonClickHandlerMethod" />
</div>

আপনার জাভাস্ক্রিপ্ট থেকে, তার ক্লায়েন্টআইডি ব্যবহার করে বোতামের রেফারেন্সটি পুনরুদ্ধার করুন এবং তারপরে এটিতে ক্লিক করুন () পদ্ধতিটি কল করুন ।

var button = document.getElementById(/* button client id */);

button.click();

3
আমি যদি একটি যুক্তি ব্যবহার করতে চাই? আমি কি এটি ক্লায়েন্টের কাছ থেকে পেতে পারি এবং এটি বোতামের সাহায্যে ব্যবহার করতে পারি?
কুবি

@ কুবির সার্ভারের পক্ষে কোন যুক্তি? আমি সাধারণত যা করি তা হ'ল আর্গুমেন্টগুলি সিরিয়ালাইজ করা যা সার্ভারের দিকে প্রেরণ করা উচিত এবং তাদের কোনও লুকানো ক্ষেত্রে রেখে দেওয়া উচিত।
এমবিলার্ড

আপনি এখানে দয়া করে দেখতে পারেন? stackoverflow.com/questions/2536106/…
কুবি

ক্লিক করার পদ্ধতিটি কি বিদ্যমান?
সাহের আহওয়াল

@ সাহেব হ্যাঁ, তবে এটি আসলে। ক্লিক (ছোট হাতের সি) ( comptechdoc.org/ind dependent
web

18

মাইক্রোসফট AJAX এর গ্রন্থাগার এই কাজ করা সম্ভব হবে। আপনি নিজের সমাধান তৈরি করতে পারেন যার মধ্যে NET ফাংশনগুলি চালানোর জন্য আপনার নিজের এসপেক্সকে (মূলত) স্ক্রিপ্ট ফাইলগুলি কল করতে AJAX ব্যবহার করা জড়িত।

আমি মাইক্রোসফ্ট এজেএক্স লাইব্রেরির পরামর্শ দিই। একবার ইনস্টল এবং রেফারেন্স হয়ে গেলে, আপনি কেবল আপনার পৃষ্ঠার লোড বা initে একটি লাইন যুক্ত করুন:

Ajax.Utility.RegisterTypeForAjax(GetType(YOURPAGECLASSNAME))

তারপরে আপনি এই জাতীয় জিনিসগুলি করতে পারেন:

<Ajax.AjaxMethod()> _
Public Function Get5() AS Integer
    Return 5
End Function

তারপরে, আপনি আপনার পৃষ্ঠায় এটি কল করতে পারেন:

PageClassName.Get5(javascriptCallbackFunction);

আপনার ফাংশন কলের শেষ প্যারামিটারটি জাভাস্ক্রিপ্ট কলব্যাক ফাংশন হতে হবে যা এজেএক্স অনুরোধটি ফিরে আসার পরে কার্যকর করা হবে।



5

আমি মনে করি যে ব্লগ পোস্ট এজেক্স (জকিউয়ারি) ব্যবহার করে এএসপি.নেট পৃষ্ঠায় এসকিউএল সার্ভার ডাটাবেস ডেটা কীভাবে আনতে এবং দেখানো যায় তা আপনাকে সহায়তা করবে।

জাভাস্ক্রিপ্ট কোড

<script src="http://code.jquery.com/jquery-3.3.1.js" />
<script language="javascript" type="text/javascript">

    function GetCompanies() {
        $("#UpdatePanel").html("<div style='text-align:center; background-color:yellow; border:1px solid red; padding:3px; width:200px'>Please Wait...</div>");
        $.ajax({
            type: "POST",
            url: "Default.aspx/GetCompanies",
            data: "{}",
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            success: OnSuccess,
            error: OnError
        });
    }

    function OnSuccess(data) {
        var TableContent = "<table border='0'>" +
                                "<tr>" +
                                    "<td>Rank</td>" +
                                    "<td>Company Name</td>" +
                                    "<td>Revenue</td>" +
                                    "<td>Industry</td>" +
                                "</tr>";
        for (var i = 0; i < data.d.length; i++) {
            TableContent += "<tr>" +
                                    "<td>"+ data.d[i].Rank +"</td>" +
                                    "<td>"+data.d[i].CompanyName+"</td>" +
                                    "<td>"+data.d[i].Revenue+"</td>" +
                                    "<td>"+data.d[i].Industry+"</td>" +
                                "</tr>";
        }
        TableContent += "</table>";

        $("#UpdatePanel").html(TableContent);
    }

    function OnError(data) {

    }
</script>

ASP.NET সার্ভার সাইড ফাংশন

[WebMethod]
[ScriptMethod(ResponseFormat= ResponseFormat.Json)]
public static List<TopCompany> GetCompanies()
{
    System.Threading.Thread.Sleep(5000);
    List<TopCompany> allCompany = new List<TopCompany>();
    using (MyDatabaseEntities dc = new MyDatabaseEntities())
    {
        allCompany = dc.TopCompanies.ToList();
    }
    return allCompany;
}

4

স্থির, দৃ ,়ভাবে টাইপযুক্ত প্রোগ্রামিংটি আমার কাছে সর্বদা খুব স্বাভাবিক অনুভূত হয়েছে, তাই আমার অ্যাপ্লিকেশনগুলির জন্য যখন ওয়েব-ভিত্তিক ফ্রন্ট-এন্ড তৈরি করতে হয়েছিল তখন প্রথমে আমি জাভাস্ক্রিপ্ট শিখতে বাধা দিয়েছিলাম (এইচটিএমএল এবং সিএসএসের উল্লেখ না করা) learning আমি অনলয়েড ইভেন্টে কেবল সম্পাদন করার জন্য কোনও পৃষ্ঠাতে পুনর্নির্দেশ করা এবং যতক্ষণ আমি খাঁটি সি # কোড করতে পারি ততক্ষণ এই কাজ করার জন্য আমি কিছু করব।

তবে আপনি দেখতে পাবেন যে আপনি যদি ওয়েবসাইটগুলির সাথে কাজ করতে যাচ্ছেন তবে আপনার অবশ্যই একটি মুক্ত মন থাকতে হবে এবং আরও ওয়েব-ওরিয়েন্টেড চিন্তা করতে শুরু করুন (এটি, সার্ভারে ক্লায়েন্ট-সাইড জিনিসগুলি করার চেষ্টা করবেন না এবং বিপরীতে) । আমি এএসপি.এনইটি ওয়েবফর্মগুলি পছন্দ করি এবং এখনও এটি ব্যবহার করি (পাশাপাশি এমভিসি ) তবে আমি বলব যে জিনিসগুলি সহজ করার চেষ্টা করে এবং ক্লায়েন্ট এবং সার্ভারের বিচ্ছিন্নতা লুকিয়ে রাখলে এটি আগতদের বিভ্রান্ত করতে পারে এবং সময়ে সময়ে জিনিসগুলি আরও জটিল করে তুলতে পারে actually ।

আমার পরামর্শটি হ'ল কিছু বেসিক জাভাস্ক্রিপ্ট শিখতে হবে (কীভাবে ইভেন্টগুলি রেজিস্ট্রেশন করতে হবে, ডিওএম অবজেক্টগুলি পুনরুদ্ধার করতে হবে, সিএসএসে ম্যানিপুলেট করুন ইত্যাদি) এবং আপনি ওয়েব প্রোগ্রামিংকে আরও উপভোগ করতে পারবেন (সহজতর উল্লেখ না করে)। প্রচুর লোক বিভিন্ন অ্যাজাক্স লাইব্রেরি উল্লেখ করেছে, তবে আমি কোন প্রকৃত আজাক্স উদাহরণ দেখতে পাইনি, সুতরাং এটি এখানে যায়। (আপনি যদি অ্যাজাক্সের সাথে পরিচিত না হন তবে পুরো পৃষ্ঠাটি পুনরায় লোড না করে বা একটি সম্পূর্ণ পোস্টব্যাক না করেই বিষয়বস্তুটিকে রিফ্রেশ করার জন্য (বা সম্ভবত আপনার দৃশ্যে কোনও সার্ভার-সাইড ক্রিয়া সম্পাদন করতে) একটি অ্যাসিনক্রোনাস এইচটিটিপি অনুরোধ করছে।

মক্কেলের পক্ষে:

<script type="text/javascript">
var xmlhttp = new XMLHttpRequest(); // Create object that will make the request
xmlhttp.open("GET", "http://example.org/api/service", "true"); // configure object (method, URL, async)
xmlhttp.send(); // Send request

xmlhttp.onstatereadychange = function() { // Register a function to run when the state changes, if the request has finished and the stats code is 200 (OK). Write result to <p>
    if (xmlhttp.readyState == 4 && xmlhttp.statsCode == 200) {
          document.getElementById("resultText").innerHTML = xmlhttp.responseText;
    }
};
</script>

এটাই. যদিও নামটি বিভ্রান্ত করতে পারে ফলাফলটি সরল পাঠ্য বা জেএসএনেও হতে পারে, আপনি এক্সএমএলে সীমাবদ্ধ নন। jQuery অ্যাজাক্স কল করার জন্য (অন্যান্য জাভাস্ক্রিপ্ট কার্যগুলি সহজ করার মধ্যে) আরও সহজ ইন্টারফেস সরবরাহ করে।

অনুরোধটি এইচটিটিপি-পোস্ট বা এইচটিটিপি-জিইটি হতে পারে এবং এটি কোনও ওয়েবপৃষ্ঠায় থাকতে হবে না তবে আপনি এমন কোনও পরিষেবাতে পোস্ট করতে পারেন যা এইচটিটিপি অনুরোধের জন্য শোনায় যেমন একটি রিয়েলস্টুল এপিআই। এএসপি.এনইটি এমভিসি 4 ওয়েব এপিআই অনুরোধটিকে বাতাসকে হ্যান্ডল করার জন্য সার্ভার-সাইড ওয়েব পরিষেবা সেট আপ করে। তবে অনেক লোক জানেন না যে আপনি ওয়েব ফর্ম প্রকল্পে এপিআই কন্ট্রোলারগুলি যুক্ত করতে পারেন এবং এগুলি অ্যাজাক্স কলগুলি হ্যান্ডেল করতে তাদের ব্যবহার করতে পারেন।

সার্ভার সাইড:

public class DataController : ApiController
{
    public HttpResponseMessage<string[]> Get()
    {
        HttpResponseMessage<string[]> response = new HttpResponseMessage<string[]>(
            Repository.Get(true),
            new MediaTypeHeaderValue("application/json")
        );

        return response;
    }
}

Global.asax

তারপরে আপনার গ্লোবাল.এক্স্যাক্স ফাইলটিতে কেবল এইচটিটিপি রুটটি নিবন্ধন করুন, যাতে এএসপি.এনইটি কীভাবে অনুরোধটি নির্দেশ করবেন তা জানতে পারবেন।

void Application_Start(object sender, EventArgs e)
{
    RouteTable.Routes.MapHttpRoute("Service", "api/{controller}/{id}");
}

এজেএক্স এবং কন্ট্রোলারগুলির সাহায্যে আপনি যেকোনও সময় সার্ভারের পাশের ক্রিয়াকলাপ সম্পাদন করতে সংবিধানে সার্ভারে আবার পোস্ট করতে পারেন। এই ওয়ান-টু পাঞ্চটি জাভাস্ক্রিপ্টের নমনীয়তা এবং সি # / এএসপি.এনইটি শক্তি উভয়ই সরবরাহ করে, আপনার সাইটটিতে আসা লোকদের আরও ভাল সামগ্রিক অভিজ্ঞতা দেয়। কিছু ত্যাগ না করে আপনি উভয় বিশ্বের সেরা পাবেন।

তথ্যসূত্র


3

মাইক্রোসফ্ট এজেএক্স লাইব্রেরি এটি সম্পাদন করবে। আপনি নিজের সমাধান তৈরি করতে পারেন যার মধ্যে NET ফাংশনগুলি চালানোর জন্য আপনার নিজের এসপেক্সকে (মূলত) স্ক্রিপ্ট ফাইলগুলি কল করতে AJAX ব্যবহার করা জড়িত।

এটি আজাক্সপ্রো নামে গ্রন্থাগার যা মাইকেল শোয়ার্জ নামে একটি এমভিপি লেখা হয়েছিল । এটি ছিল গ্রন্থাগার মাইক্রোসফ্ট দ্বারা রচিত হয়নি।

আমি অ্যাজাক্সপ্রোটি ব্যাপকভাবে ব্যবহার করেছি এবং এটি খুব সুন্দর একটি গ্রন্থাগার, যা আমি সার্ভারে সাধারণ কলব্যাকগুলির জন্য সুপারিশ করব। এটি কোনও সমস্যা ছাড়াই অজাক্সের মাইক্রোসফ্ট সংস্করণে ভাল কাজ করে। তবে, আমি লক্ষ করব, মাইক্রোসফ্ট আজাজাক্সকে কত সহজ করে তুলেছে, আমি যদি সত্যিই প্রয়োজন হয় তবে কেবল এটিই ব্যবহার করব। মাইক্রোসফ্ট থেকে এটি আপডেট প্যানেলে ফেলে কেবল কিছু জটিল কার্যকারিতা করতে অনেকটা জাভাস্ক্রিপ্ট লাগে।


1
আমি আশা করি এই পোস্টটি
উপরেরটির

1
@ ডেভ সেজন্য লোকদের উত্তরগুলিতে মন্তব্য করা উচিত এবং অন্য উত্তরে নিজেরাই অনন্য উত্তর হিসাবে মন্তব্য যুক্ত করা উচিত নয়।
চার্লস বায়ুং

2

যদি আপনি কোনও সার্ভার-সাইড ইভেন্ট হ্যান্ডলারটি ট্রিগার করতে চান তবে উদাহরণস্বরূপ, বাটনের ক্লিক ইভেন্টটি উভয় পরিস্থিতিতে (যেমন সিঙ্ক্রোনাস / অ্যাসিনক্রোনাস) এর পক্ষে এটি এত সহজ।

কোনও ইভেন্টের হ্যান্ডলারকে নিয়ন্ত্রণের জন্য: আপনি যদি ইতিমধ্যে আপনার পৃষ্ঠায় স্ক্রিপ্টম্যানেজার যুক্ত করেন তবে পদক্ষেপ 1 এড়িয়ে যান।

  1. আপনার পৃষ্ঠা ক্লায়েন্ট স্ক্রিপ্ট বিভাগে নিম্নলিখিত যোগ করুন

    //<![CDATA[
    var theForm = document.forms['form1'];
    if (!theForm) {
        theForm = document.form1;
    }
    function __doPostBack(eventTarget, eventArgument) {
        if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
            theForm.__EVENTTARGET.value = eventTarget;
            theForm.__EVENTARGUMENT.value = eventArgument;
            theForm.submit();
        }
    }
    //]]>
    1. আপনার নিয়ন্ত্রণের জন্য আপনাকে সার্ভার সাইড ইভেন্ট হ্যান্ডলারটি লিখুন

      সুরক্ষিত অকার্যকর বিটিএনসেহেলো_ক্লিক (অবজেক্ট প্রেরক, ইভেন্টআর্গস ই) {Label1.Text = "হ্যালো ওয়ার্ল্ড ..."; }

    2. সার্ভার সাইড ইভেন্ট হ্যান্ডলারকে কল করতে একটি ক্লায়েন্ট ফাংশন যুক্ত করুন

      ফাংশন SayHello () {__do ​​পোষ্টব্যাক ("বিটিএনসেহেলো", ""); }

আপনার নিয়ন্ত্রণের ক্লায়েন্ট আইডি দিয়ে উপরের কোডে "বিটিএনসেহেলো" প্রতিস্থাপন করুন।

এটি করে, যদি আপনার নিয়ন্ত্রণ কোনও আপডেট প্যানেলে থাকে তবে পৃষ্ঠাটি রিফ্রেশ হবে না। এটা এত সহজ।

আর একটি কথা বলবেন তা হ'ল: ক্লায়েন্ট আইডিতে সাবধানতা অবলম্বন করুন, কারণ এটি ক্লায়েন্টআইডোড সম্পত্তি হিসাবে সংজ্ঞায়িত আপনার আইডি-প্রজন্মের নীতি নির্ভর করে।


2

আমি এটি বাস্তবায়নের চেষ্টা করছি কিন্তু এটি সঠিকভাবে কাজ করছে না। পৃষ্ঠাটি আবার পোস্ট করছে, তবে আমার কোডটি কার্যকর হচ্ছে না। আমি যখন পৃষ্ঠাটি ডিবাগ করি তখন রায়সপোস্টব্যাকএভেন্ট কখনই বরখাস্ত হয় না। একটি জিনিস যা আমি আলাদাভাবে করেছি তা হ'ল আমি এটি একটি এসপেক্স পৃষ্ঠার পরিবর্তে ব্যবহারকারীর নিয়ন্ত্রণে করছি।

যদি অন্য কারও কারও মত হয় এবং এটি আসতে সমস্যা হয়, আমার একটি সমাধান আছে:

আপনার যখন কোনও ব্যবহারকারীর নিয়ন্ত্রণ থাকে, তখন মনে হয় আপনার অবশ্যই পিতৃ পৃষ্ঠায় পোস্টব্যাকএভেন্টহ্যান্ডলারটি তৈরি করতে হবে। এবং তারপরে আপনি সরাসরি ব্যবহার করে ব্যবহারকারীর নিয়ন্ত্রণের পোস্টব্যাকএভেন্টহ্যান্ডলারকে ডাকতে পারেন। নিচে দেখ:

public void RaisePostBackEvent(string _arg)
{
    UserControlID.RaisePostBackEvent(_arg);
}

ইউজারকন্ট্রোলআইডি হ'ল আইডি হ'ল আপনি যখন মার্ক আপটিতে বাসা বেঁধেছিলেন তখন আপনি প্যারেন্ট পৃষ্ঠায় ব্যবহারকারীকে নিয়ন্ত্রণ দিয়েছিলেন।

দ্রষ্টব্য: আপনি কেবল সেই ব্যবহারকারী নিয়ন্ত্রণের সাথে সম্পর্কিত পদ্ধতিগুলি সরাসরি কল করতে পারেন (যার ক্ষেত্রে আপনার কেবল প্যারেন্ট পৃষ্ঠায় RaisePostBackEvent হ্যান্ডলার প্রয়োজন হবে):

public void RaisePostBackEvent(string _arg)
{
    UserControlID.method1();
    UserControlID.method2();
}

একটি নতুন প্রশ্ন খুলুন দয়া করে। আপনি যে প্রশ্নটি পোস্ট করছেন তার বয়স পাঁচ বছরের বেশি।
নিকো

দুঃখিত। সুযোগ পেলেই আমি তা করবো।
davrob01

1

আপনি আপনার সাধারণ পদ্ধতির জন্য একটি ওয়েব পরিষেবা তৈরি করতে চাইতে পারেন।
আপনি যে ফাংশনগুলিতে কল করতে চান তার উপর কেবল একটি ওয়েবমেথডঅ্যাট্রিবিউট যুক্ত করুন এবং এটি প্রায়।
আপনার সমস্ত সাধারণ জিনিসগুলির সাথে একটি ওয়েব পরিষেবা থাকা সিস্টেমকে বজায় রাখা আরও সহজ করে তোলে।


1

যদি পেজটিতে __doPostBack ফাংশনটি উত্পন্ন না হয় তবে এটিকে জোর করার জন্য আপনাকে একটি নিয়ন্ত্রণ toোকানো দরকার:

<asp:Button ID="btnJavascript" runat="server" UseSubmitBehavior="false" />

1

সংক্রান্ত:

var button = document.getElementById(/* Button client id */);

button.click();

এটির মতো হওয়া উচিত:

var button = document.getElementById('<%=formID.ClientID%>');

যেখানে formID হ'ল .aspx ফাইলে ASP.NET নিয়ন্ত্রণ আইডি।


0

আপনি যদি প্রত্যাশিত ত্রুটিটি পেয়ে থাকেন তবে পৃষ্ঠা লোডটিতে এই লাইনটি যুক্ত করুন।

ClientScript.GetPostBackEventReference(this, "");

0

আপনি PageMethods.Your C# method Nameজাভাস্ক্রিপ্টে সি # পদ্ধতি বা VB.NET পদ্ধতি অ্যাক্সেসের জন্য ব্যবহার করতে পারেন ।


0

এটা চেষ্টা কর:

if(!ClientScript.IsStartupScriptRegistered("window"))
{
    Page.ClientScript.RegisterStartupScript(this.GetType(), "window", "pop();", true);
}

অথবা এটা

Response.Write("<script>alert('Hello World');</script>");

জাভাস্ক্রিপ্ট ফাংশনগুলি কল করতে বোতামটির অনক্লিয়েন্ট ক্লিক ক্লিক করুন ...


0

আপনি আপনার জাভাস্ক্রিপ্ট কোডটিতে এই লাইনটি যুক্ত করে এটিও পেতে পারেন:

document.getElementById('<%=btnName.ClientID%>').click()

আমি মনে করি এটি খুব সহজ!


0

দয়া করে এটি চেষ্টা করুন:

<%= Page.ClientScript.GetPostBackEventReference(ddlVoucherType, String.Empty) %>;

ddlVoucherType একটি নিয়ন্ত্রণ যা নির্বাচিত সূচক পরিবর্তনটি কল করবে ... এবং আপনি এই নিয়ন্ত্রণের নির্বাচিত সূচি পরিবর্তনে কোনও ফাংশন রাখতে পারেন।


0

এটি অর্জনের সহজ ও সর্বোত্তম উপায় হ'ল onmouseup()জাভাস্ক্রিপ্ট ইভেন্টের পরিবর্তে ব্যবহার করাonclick()

আপনি ক্লিক করার পরে এইভাবে আপনি জাভাস্ক্রিপ্ট নষ্ট করবেন এবং এটি এএসপি OnClick()ইভেন্টে হস্তক্ষেপ করবে না ।


0

আমি এটি চেষ্টা করেছিলাম এবং তাই আমি jQuery ব্যবহার করার সময় একটি Asp.Net পদ্ধতি চালাতে পারি।

  1. আপনার jQuery কোডে একটি পৃষ্ঠা পুনর্নির্দেশ করুন

    window.location = "Page.aspx?key=1";
  2. তারপরে পৃষ্ঠা লোডে কোয়েরি স্ট্রিং ব্যবহার করুন

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["key"] != null)
        {
            string key= Request.QueryString["key"];
            if (key=="1")
            {
                // Some code
            }
        }
    }

সুতরাং অতিরিক্ত কোড চালানোর দরকার নেই


0

এই উত্তরটি আমার পক্ষে বাতাসের মতো কাজ করে ধন্যবাদ ক্রস ব্রাউজার:

__DoPostBack () পদ্ধতিটি ভালভাবে কাজ করে।

আরেকটি সমাধান (খুব হ্যাকিশ) হ'ল আপনার মার্কআপে কেবল একটি অদৃশ্য এএসপি বোতাম যুক্ত করা এবং এটি একটি জাভাস্ক্রিপ্ট পদ্ধতিতে ক্লিক করা।

<div style="display: none;"> 
    <asp:Button runat="server" ... OnClick="ButtonClickHandlerMethod" /> 
</div> 

আপনার জাভাস্ক্রিপ্ট থেকে, তার ক্লায়েন্টআইডি ব্যবহার করে বোতামের রেফারেন্সটি পুনরুদ্ধার করুন এবং তারপরে এটিতে ক্লিক করুন () পদ্ধতিটি কল করুন:

var button = document.getElementByID(/* button client id */); 

button.Click(); 

ব্লককোট

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.