مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

عطایی

عضویت از 1392/05/14

postback

  • شنبه 15 اسفند 1394
  • 11:01
تشکر میکنم

سلام خسته نباشید

من داخل دایو توی code behind یه سری سوال میسازم و نمایش میدم حالا مشکل من اینجاست با اینکه داخل آپدیت پنل گذاشتم اما باز پست بک اتفاق میفته چیکار باید کنم

من trigger هم تعریف کردم اما خطا میده control id رو روی آیدی دایو ست کردم این ارور رو بهم میده

Control with ID 'myFormContainer' being registered through RegisterAsyncPostBackControl or RegisterPostBackControl must implement either INamingContainer, IPostBackDataHandler, or IPostBackEventHandler.

بعد اینکه من سوالها رو تو کد که میسازم پاسخ ها رو با ردیو باتن لود میکنم و نکته ای هم که داره من خودم تو کد postback ردیو باتن رو true قرار دادم چون در صورت انتخاب جواب ، سوالات مرتبط باید لیست بشه

 

خیلی برام حیاتیه ممنون میشم راهنماییم کنید



    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" >

                                            <ContentTemplate>

                                                <div class="profile-user-info profile-user-info-striped" id="myFormContainer" runat="server" style="overflow: auto; height: 400px; padding: 10px;">
                                                    <div class="profile-info-row" >
                                                    </div>
                                                 
                                                </div>
                                               
                                            </ContentTemplate>
                                         
                                        </asp:UpdatePanel>

 

پاسخ های این پرسش

تعداد پاسخ ها : 4 پاسخ
کاربر سایت

amir124

عضویت از 1393/12/27

  • شنبه 15 اسفند 1394
  • 13:32

راديو باتن رو داخل update panel  نذاشتي

يا آبجكتي كه runat="server" كه با اشياء داخل فرمت در ارتباطه بايد داخل update panel  بزاري

کاربر سایت

عطایی

عضویت از 1392/05/14

  • یکشنبه 16 اسفند 1394
  • 09:12

صورت سوالو خوندید؟؟؟؟؟؟؟؟؟؟؟؟

کنترلها داخل code behind ساخته میشوند و به تگ mycontainer  اضافه میشن

و کل تگ داخل update panle هست

خودم چندتا توضیح میدم برای دوستانی که ممکنه مشکل منو داشته باشن

یک اینکه باید از trigger ها استفاده کرد که اینم ذر صورتی شدنی هست که کنترلها در قسمت سورس وجود داشته باشند چون تریگرها سمت کلاینت هستند

دوم این هست که بهترین راه برای حل چنین مشکل استفاده از جاوا اسکریپت می باشد

کاربر سایت

سمیه حاتمی

عضویت از 1394/06/24

  • یکشنبه 16 اسفند 1394
  • 09:24

سلام دوست عزیز

چیزی که به ذهنم می رسه اینه که برای attach کردن trigger روش زیر بهتر باشه

<div>
    <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager>
        <asp:UpdatePanel ID="updPanel" runat="server" UpdateMode="Conditional">
        <Triggers>
            <asp:PostBackTrigger ControlID="btnUpload" />
        </Triggers>
            <ContentTemplate>
                <asp:FileUpload ID="fupload" runat="server" /><br />
                <asp:Button ID="btnUpload" runat="server" Text="Upload"  onclick="btnUpload_Click" />
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>

 

کاربر سایت

عطایی

عضویت از 1392/05/14

  • یکشنبه 16 اسفند 1394
  • 16:03

مرسی سمیه حاتمی عزیز

اما این روش زمانی درست هست که کنترلها در صفحه وجود داشته باشن من تمامی کنترلها رو در قسمت کد تولید میکنم پس استفاده از تریگر معنا نداره دیگه

تنها راه استفاده از جی کوئری هست به این صورت که یه فیلد پنهان تعریف کرد و مقدار اسکرول رو داخلش نگه داشت و بعد پست بک دوباره همان مقدار رو به تگ دایو میدهیم

   <script type="text/javascript">
        window.onload = function () {
            var div = document.getElementById("dvScroll");
            var div_position = document.getElementById("div_position");
            var position = parseInt('<%=Request.Form["div_position"] %>');
            if (isNaN(position)) {
                position = 0;
            }
            div.scrollTop = position;
            div.onscroll = function () {
                div_position.value = div.scrollTop;
            };
        };
    </script>

    <div id="dvScroll" style="overflow-y: scroll; height: 260px; width: 300px">
     
    </div>
    <hr />
    <input type="hidden" id="div_position" name="div_position" />

 

این هم کدهای من که کاملا اوکی هست .

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)