ড্রপডাউনলিস্টের সিলেক্ট ইন্ডেক্সের পরিবর্তিত ইভেন্টটি গুলি চালাচ্ছে না


196

আমার ওয়েব পৃষ্ঠায় আমার একটি ড্রপডাউনলিস্ট অবজেক্ট রয়েছে। আমি যখন এটিতে ক্লিক করি এবং একটি আলাদা মান নির্বাচন করি, ঘটনার পরে আমার কোনও ফাংশন থাকলেও কিছুই ঘটে না SelectedIndexChanged

প্রথমত, আসল বস্তুর এইচটিএমএল কোড:

<asp:DropDownList ID="logList" runat="server" 
       onselectedindexchanged="itemSelected">
</asp:DropDownList>

এবং এটি সেই ফাংশনটি itemSelected:

protected void itemSelected(object sender, EventArgs e)
{
    Response.Write("Getting clicked; " + sender.GetType().ToString());
    FileInfo selectedfile;
    Response.Write("<script>alert('Hello')</script>");
    foreach (FileInfo file in logs)
    {
        if (file.Name == logList.Items[logList.SelectedIndex].Text)
        {
            Response.Write("<script>alert('Hello')</script>");
        }
    }
}

কোনও প্রতিক্রিয়া উপস্থিত হয় না এবং জাভাস্ক্রিপ্টের সেই অংশটি কখনও চালিত হয় না। আমি এটি ফায়ারফক্সের সর্বশেষতম 3.6 সংস্করণে এবং পাশাপাশি ইন্টারনেট এক্সপ্লোরার 8 এ চেষ্টা করেছি This এটি নেটও ফ্রেমওয়ার্ক সংস্করণ 4 সহ এএসপি.এনইটি চালিয়ে একটি উইন্ডোজ সার্ভার 2003 আর 2 মেশিন থেকে পরিবেশন করা হচ্ছে।

উত্তর:


399

ড্রপডাউনলিস্ট AutoPostBackসম্পত্তিটিকে সত্যে সেট করুন ।

উদাহরণ:

<asp:DropDownList ID="logList" runat="server" AutoPostBack="True" 
        onselectedindexchanged="itemSelected">
    </asp:DropDownList>

3
ঠিক আছে, মনে হয় এটি স্থির হয়েছে, আপনাকে ধন্যবাদ। কেন আপনি ব্যাখ্যা করতে পারেন?
টিজিপি 1994

2
@ টিজিপি ১৯৯৪: অটোপোস্টব্যাক বৈশিষ্ট্যটি কোনও স্বয়ংক্রিয় পোস্ট ফিরে আসে কি না তা সেট বা ফেরত দিতে ব্যবহৃত হয়
ব্যাস দেব

2
ড্রপডাউন তালিকাটি নির্বাচন করার সময়, এটির তালিকার প্রথম মানটি চলেছে
মুহাম্মদ শফিক ২

20
@ মুহম্মদ শফিক - আপনি যদি পেজ_ল্ড পদ্ধতিতে তালিকাটি পপুল করছেন তবে নিশ্চিত হয়ে নিন যে কোডটি যদি আপনার (! ইসপোস্টব্যাক) মোড়ানো থাকে তবে নিশ্চিত হয়ে নিন। এটি তালিকাটিকে পুনরায় লোড করা এবং এটি প্রথম আইটেমটিতে ফিরে সেট করা থেকে আটকাবে।
ডেভেক


44

আমি এর কিছুটা পুরানো পোস্ট জানি তবে তবুও আমি উপরের উত্তরগুলিতে কিছু যুক্ত করতে চাই।

কিছু পরিস্থিতি থাকতে পারে যেখানে, ড্রপডাউন তালিকার একাধিক আইটেমের " মান " নকল / একই। সুতরাং, নিশ্চিত হয়ে নিন যে এই " অনসলেক্ট ইনচেঞ্জড " ইভেন্টটি ট্রিগার করতে তালিকার আইটেমগুলিতে আপনার কোনও পুনরাবৃত্তি মান নেই


আমার দুটি মান সদৃশ হয়ে গিয়েছিল এবং এটি পোস্টব্যাকটি ঘটলেও সত্ত্বেও অনিলেক্ট্রিক্ট এক্সচেঞ্জড ইভেন্টটিকে আগুন না দেয়ার কারণ হয়ে দাঁড়ায়। এর জন্য ধন্যবাদ!
মাইক

ড্রপডাউনের নির্বাচিত মানটি অনেক আইটেমের মধ্যে বাতিল হয়ে গিয়েছিল। দয়া করে জিজ্ঞাসা করে দেখুন যে মানটি নাল নয়।
দিনেশ কুমার

12

সম্পত্তি যুক্ত করুন ViewStateMode="Enabled"এবং EnableViewState="true" এবং AutoPostBack="true"ড্রপডাউনলিস্টে


ভিউস্টেটের বৈশিষ্ট্যগুলির প্রয়োজন হয় না এবং অটোপোস্টব্যাকটি এর একাধিক উত্তরে বহু বছর আগে প্রস্তাবিত হয়েছিল।
টাইলার

4

পৃষ্ঠাটি বৈধ কিনা তাও নিশ্চিত করুন। আপনি এটি ব্রাউজারগুলির বিকাশকারী সরঞ্জামগুলিতে পরীক্ষা করতে পারেন (F12)

কনসোল ট্যাবে সঠিক টার্গেট / ফ্রেম নির্বাচন করুন এবং [পেজ_আইসভালিড] সম্পত্তিটি পরীক্ষা করুন

পৃষ্ঠাটি বৈধ না হলে ফর্মটি জমা দেবে না এবং তাই ইভেন্টটি চালিত করবে না।


1
হার্বালমার্টের পক্ষে ভোট দিন আমার ক্ষেত্রে পৃষ্ঠাটি অবৈধ ছিল তবে আমি আমার পৃষ্ঠাগুলিতে টেলিক র‌্যাডএজ্যাক্স ম্যানেজারটি ব্যবহার করার কারণে আমি যখন আমার ব্রাউজারে পরীক্ষা করেছি ত্রুটিটি দেখাচ্ছিল না। আমি যখন পুরো র‍্যাডএজ্যাক্স ম্যানেজারটি মন্তব্য করেছিলাম ত্রুটিটি নিজেই উপস্থাপিত হয়েছিল এবং আমি এটিকে সংশোধন করতে সক্ষম হয়েছি।
ব্যবহারকারী 2721607

এটি সমস্যাযুক্ত লোকদের জন্য সহায়ক হতে পারে তবে এটি সেই লোকদের বলার মতো যাঁদের গাড়ি "যখন আপনার হেডলাইটগুলি কাজ করে তা নিশ্চিত করুন বা রাতে গাড়ি চালানোর সময় আপনি দেখতে পাবেন না" কীটি চালু করার পরে গাড়িটি শুরু হবে না। অন্য কথায়, এটি জিজ্ঞাসা করা প্রশ্নের উত্তর দেয় না।
টাইলার

2

আমার জন্য উত্তরটি ছিল এসপেক্স পৃষ্ঠা বৈশিষ্ট্য, আমি পৃষ্ঠা বৈশিষ্ট্যগুলিতে অ্যাসিঙ্ক = "সত্য" যুক্ত করেছি এবং এটি আমার সমস্যার সমাধান করে।

<%@ Page Language="C#" MasterPageFile="~/MasterPage/Reports.Master"..... 
    AutoEventWireup="true" Async="true" %>

এটি আমার আপডেট প্যানেলের কাঠামো

<div>
  <asp:UpdatePanel ID="updt" runat="server">
    <ContentTemplate>

      <asp:DropDownList ID="id" runat="server" AutoPostBack="true"        onselectedindexchanged="your server side function" />

   </ContentTemplate>
  </asp:UpdatePanel>
</div>

1

আপনি যা লিখেছেন তার পরিবর্তে, আপনি এটি ড্রপডাউনলিস্ট নিয়ন্ত্রণের সিলেক্ট ইন্ডেক্স চ্যাঞ্জড ইভেন্টে সরাসরি লিখতে পারেন, উদাহরণস্বরূপ

protected void ddlleavetype_SelectedIndexChanged(object sender, EventArgs e)
{
 //code goes here
}

1
কেবলমাত্র এসপিএক্স পৃষ্ঠায় অটোইভেন্টওয়্যারআপ সেটিংস যদি সত্য হয়, অন্যথায় আপনাকে আসল উদাহরণ অনুসারে ম্যানুয়ালি এটি করা দরকার।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.