c# - JavaScript method not working in ASP.NET User Control -
c# - JavaScript method not working in ASP.NET User Control -
i asked question before javascript code can see here : how can scroll downwards multiline textbox's bottom line, javascript's scrollintoview not working this. well, solved , accepted reply working.
afterwards had move code part can see in question user command looked :
<%@ command language="c#" autoeventwireup="true" codebehind="livechatpart.ascx.cs" inherits="beyzamcomarayuz.livechatusercontrol.livechatpart" %> <%@ register src="/livechatusercontrol/genelodaflashpart.ascx" tagname="genelodaflash" tagprefix="gof" %> <script language="javascript" type="text/javascript"> function buttonclicked() { // var el = document.getelementbyid("txtbxodamesajlari"); var textbox = $get("txtbxodamesajlari"); textbox.scrolltop = textbox.scrollheight; // $get("txtbxodamesajlari").scrollintoview("false"); } </script> <asp:scriptmanager id="scrptmngr" runat="server"></asp:scriptmanager> <tr> <gof:genelodaflash runat="server"></gof:genelodaflash> <td valign="top" align="left"> <table> </table> </td> <td valign="top" align="left"> <table> <tr> <td> buraya imajlar gelecek - chip vs. </td> </tr> <tr> <td> <asp:listbox id="lstbxodadakikullanicilar" runat="server" width="175" height="281" enabled="false"> <asp:listitem value="1" text="bir"></asp:listitem> </asp:listbox> </td> </tr> <tr> <td> <asp:updatepanel id="updtpnlbuttonlar" runat="server"> <contenttemplate> <table> <tr> <td> <asp:button id="buttonodadancik" runat="server" text="odadan Çık" width="175" height="22" /> <asp:button id="buttonhediyegonder" runat="server" text="hediye gönder" width="175" height="22" /> <asp:button id="buttonfullekran" runat="server" text="full ekran" width="175" height="22" /> <table> <tr> <td> <asp:panel id="pnlkontroller" runat="server" groupingtext="kontroller" visible="false"> <table> <tr> <td> <asp:label id="lblchatturu" runat="server" text="Ücretsiz!"></asp:label> </td> </tr> <tr> <td> <asp:button id="bttnsohbetturudegistir" runat="server" width="175" text="sohbet türü değiştir" onclick="bttnsohbetturudegistir_click" /> <asp:button id="bttnmolaver" runat="server" width="175" text="mola ver" onclick="bttnmolaver_click" /> </td> </tr> </table> </asp:panel> </td> </tr> </table> </td> </tr> </table> </contenttemplate> </asp:updatepanel> <asp:button id="buttonozelsohbet" runat="server" text="Özel sohbet" height="108" width="175" onclick="buttonozelsohbet_click" /> <asp:panel id="pnlozelsohbetkamera" runat="server" visible="false"> <asp:label id="asd" runat="server" text="zsa"></asp:label> <div id="ozelodakamera" style="height: auto; float: left;"> <script type="text/javascript" src="/jwplayer/swfobject.js"></script> <script type="text/javascript"> // version detection, set min. required flash player version, or 0 (or 0.0.0), no version detection. var swfversionstr = "11.1.0"; // <!-- utilize express install, set playerproductinstall.swf, otherwise empty string. --> var xiswfurlstr = "playerproductinstall.swf"; var flashvars = {}; var params = {}; params.quality = "high"; params.bgcolor = "#ffffff"; params.allowscriptaccess = "samedomain"; params.allowfullscreen = "true"; var attributes = {}; attributes.id = "uyeozelodakameraflash"; attributes.name = "uyeozelodakameraflash"; attributes.align = "middle"; swfobject.embedswf( "/images/uyeozelodakameraflash.swf", "ozelodakamera", "220", "150", swfversionstr, xiswfurlstr, flashvars, params, attributes); // <!-- javascript enabled display flashcontent div in case not replaced swf object. --> swfobject.createcss("#flashcontent", "display:block;text-align:left;"); </script> </div> </asp:panel> </td> </tr> </table> </td> </tr> <tr> <td style="padding-left:8px;"> <asp:updatepanel id="updtpnlmesajlar" runat="server" enableviewstate="true"> <contenttemplate> <table> <tr> <td> <table> <tr> <td> <%--<div id="satir">--%> <asp:textbox id="txtbxodamesajlari" runat="server" readonly="true" textmode="multiline" height="100" width="350"> </asp:textbox> <%--</div>--%> </td> </tr> <tr> <td> <asp:textbox id="txtbxmesaj" runat="server" width="285"></asp:textbox> <%--this button should run javascript function--%> <asp:button id="bttngonder" runat="server" text="gönder" width="58" onclick="bttngonder_click"/> </td> </tr> </table> </td> <td valign="top"> <asp:panel id="pnlaktivitekayitlari" runat="server" visible="false" groupingtext="aktivite kayıtları"> <table> <tr> <td valign="top"> <asp:listbox id="lstbxaktivitekayitlari" runat="server" enabled="false" width="128"> <asp:listitem value="1" text="bir giriş yaptı"></asp:listitem> </asp:listbox> </td> </tr> </table> </asp:panel> </td> </tr> </table> </contenttemplate> </asp:updatepanel> </td> </tr> and in asp.cs file have
protected void bttngonder_click(object sender, eventargs e) { string cariid = ""; if (kullanicituru == 1) { cariid = session["modelid"].tostring(); } else { cariid = session["uyeid"].tostring(); } string uyehesapadi = bal.cari.cari.getcarihesapadi(int.parse(cariid)); string mesaj = uyehesapadi + " : " + txtbxmesaj.text; txtbxodamesajlari.text = txtbxodamesajlari.text + environment.newline + mesaj; //txtbxodamesajlari.focus(); scriptmanager.registerstartupscript(this, this.gettype(), "txtbxmesajlarslide", "buttonclicked();", true); txtbxmesaj.text = string.empty; } my problem buttonclicked() function not working anymore, tried utilize page.clientscriptmanager.registerclientscriptinclude scotts's answer , page.clientscript.registerclientscriptblock, neither of them worked.what can do?
edit: tried debug webpage ie9's built in debugger , set breakpoint in buttonclicked() function never hit.then used onclientclick event of button , added buttonclicked function it works each click textbox jumps before buttonclicked() function.
the issue ids controls on user command mangled in include user control's id plus actual control's id. control's id looks like: uclivechatpart_txtbxodamesajlari.
the easy way handle alter line:
var textbox = $get("txtbxodamesajlari"); to:
var textbox = document.getelementbyid('<%= txtbxodamesajlari.clientid %>'); now, if extract javascript separate file or want utilize different approach, can emit command id javascript variable codebehind , utilize instead.
in codebehind:
scriptmanager.registerstartupscript(this, this.gettype(), "txtbxodamesajlariid", "var m_txtbxodamesajlariid = '" + txtbxodamesajlari.clientid + "'";, true); and in javascript:
var textbox = $get(m_txtbxodamesajlariid); c# javascript asp.net user-controls updatepanel
Comments
Post a Comment