SharePoint Foundation TextBox Enter İşleminde Sayfanın Düzenleme Durumuna Geçme Hatası Çözümü

Merhaba arkadaşlar bugün sizlere SharePoint Foudation ortamında sayfa da yer alan bir textbox içinde iken enter işleminizde sayfanın edit moda geçmesi hatasından ve bu hatanın çözümünden bahsedeceğim.

Bu hata örneğini her zaman kullanacağız bir yapı olan search yapısından bahsederek anlatacağım.

Herhangi bir SharePoint Foundation projesinin masterpage ini özelleştirip kendinize göre güncellediğinizi varsayalım. Bu tasarımda da kendi tasarladığınız bir searchbox kutusunu kullanmak istediniz.

Yukarıdaki gibi bir textbox ımız ve arama butonumuz olduğunu varsayalım.

</p>
<p>&lt;div class=&quot;gt-cfhcrb-searchBox&quot;&gt;<br />
&lt;input type=&quot;text&quot; class=&quot;form-control searchInput&quot; placeholder=&quot;Anahtar Kelime&quot; id=&quot;Search&quot;/&gt;<br />
&lt;span class=&quot;icon-icn-search&quot; id=&quot;SearchButton&quot;&gt;&lt;span class=&quot;path1&quot;&gt;&lt;/span&gt;&lt;span class=&quot;path2&quot;&gt;&lt;/span&gt;&lt;/span&gt;<br />
&lt;/div&gt;</p>
<p>

Bu searchbox ve butonumuzun kodları da yukarı daki gibi olduğunu farz edelim.

Şimdi siz sayfaya gidip bu search box kısmına birşeyler yazıp enter tuşuna bastığınızda sayfa otomatik olarak düzenleme moduna geçecektir. Bunu engellemek için bir javascript metodu yazıyoruz.

</p>
<p>function OpenSearch() {</p>
<p>window.open(&quot;/_layouts/15/osssearchresults.aspx?k=&quot; + $('#Search').val(), &quot;_self&quot;);</p>
<p>}</p>
<p>function searchKeyPress(buttonId,e) {</p>
<p>if (window.event) {  e = window.event;  }</p>
<p>if (e.keyCode == 13) {</p>
<p>document.getElementById(buttonId).click();</p>
<p>e.preventDefault ? e.preventDefault() : e.returnValue = false; return false;</p>
<p>}</p>
<p>}</p>
<p>&lt;/script&gt;</p>
<p>

yukarıdaki “searchKeyPress” fonksiyonuna butonumuzun id sini ve event ımızı parametre olarak yolluyoruz ve bu metonu keypress olarak çağırdığımız textboxta otomatik eventları iptal ederek verdiğimiz button id sine click yaparak işlemi yapmasını söylüyoruz.

Diğer “OpenSearch” fonksiyonumuz ise bizi parametremiz ile birlikte arama sayfasına yönlendirmesini sağlıyoruz.

Bu Durumdan sonra arama kutumuzu ve arama butonumuzun htmllerini aşağıdaki gibi güncellememiz gerekmektedir.

</p>
<p>&lt;div class=&quot;gt-cfhcrb-searchBox&quot;&gt;<br />
&lt;input type=&quot;text&quot; class=&quot;form-control searchInput&quot; placeholder=&quot;Anahtar Kelime&quot; id=&quot;Search&quot; onkeypress=&quot;searchKeyPress('SearchButton',event);&quot;/&gt;<br />
&lt;span class=&quot;icon-icn-search&quot; onclick=&quot;JavaScript: OpenSearch()&quot; id=&quot;SearchButton&quot;&gt;&lt;span class=&quot;path1&quot;&gt;&lt;/span&gt;&lt;span class=&quot;path2&quot;&gt;&lt;/span&gt;&lt;/span&gt;<br />
&lt;/div&gt;</p>
<p>

Tabi arkadaşlar ben burada başta da dediğim gibi search için bir düzenleme yaptım ve ona göre kodumu yazmış oldum. Siz herhangi bir butona bağlı kalmadan event işlemini iptal ederek button id parametresini devre dışı bırakarak istediğiniz işlemi yaptırabilirsiniz.

Bir Cevap Yazın