2016-06-10 5 views
-1

Ich habe zwei JQuery Funktionen beide arbeiten für Gridview in ASP.NetRufen Sie eine jQuery-Funktion nach der anderen JQuery in ASP.Net

1. Funktion zu Gridview-Header zu fixieren und erstellen Auto Scroll-Leisten

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script> 
<script src="jquery/JQueryUICalendar/js/gridviewScroll.min.js" type="text/javascript"></script> 

<script type="text/javascript"> 
    var $160 = jQuery.noConflict(); 
    $160(document).ready(function() { 
     gridviewScroll(); 
    }); 

    function gridviewScroll() { 
     $160('#<%=grdTenant.ClientID%>').gridviewScroll({ 
      width: 1080, 
      height: 340, 
      // freezesize: 2, //kung gusto mag free yung column enable this pls 
      //IsInUpdatePanel: true 
      arrowsize: 30, 
      varrowtopimg: "images/arrowvt.png", 
      varrowbottomimg: "images/arrowvb.png", 
      harrowleftimg: "images/arrowhl.png", 
      harrowrightimg: "images/arrowhr.png" 
     }); 
    } 

</script> 

2. Funktion zum automatischen Filtern eines Datensatzes in der Gridview mit dem Tastendruckereignis in der Textbox.

var $KeyPressSearch = jQuery.noConflict(); 
function filter2(phrase, _id) { 

var words = phrase.value.toLowerCase().split(" "); 
var table = document.getElementById(_id); 

var ele; 
for (var r = 1; r < table.rows.length; r++) { 
ele = table.rows[r].innerHTML.replace(/<[^>]+>/g, ""); 
var displayStyle = 'none'; 
for (var i = 0; i < words.length; i++) { 
if (ele.toLowerCase().indexOf(words[i]) >= 0) 
displayStyle = ''; 
else { 
displayStyle = 'none'; 
break; 
} 
} 
table.rows[r].style.display = displayStyle; 

} 

und in Eingang Textbox

<input id="txtTerm" name="txtTerm" onkeyup="filter2(this, '<%=grdTenant.ClientID %>')" type="text" size="40" /> 

Problem:

Jedesmal, wenn ich die Textbox für die Suche verwendet, auf Tastendruck, werden die Datensätze gefiltert werden, aber das Format des Grid selbst wird desorganisiert und fehlausgerichtet. Bitte siehe Bild unten

enter image description here

Lösung:

Was ich versuchte, die erste Funktion jedes Mal die zweite Funktion (keypress Suche) ist zu tun ist, erneut bewerben Ausführen.

<input id="txtTerm" name="txtTerm" onkeyup="filter2(this, '<%=grdTenant.ClientID %>')" type="text" size="40" onclick="gridviewScroll()" /> 

Was ich tat, enthalten ist ein dem Eingabetextattribut Onclick und rufen Sie die Funktion gridviewscroll, aber es funktioniert immer noch nicht erfolgreich arbeiten. andere Optionen sind:

  1. Vielleicht sollte es wieder auf Tastendruck statt Onclick sein?

  2. oder den Code direkt in die jquery-Funktion aufnehmen und sie zu einem machen?

Ihr Expertenrat wurde dringend benötigt. Danke im Voraus.

+0

versuchen, 'gridviewScroll()' in der letzten Zeile von 'filter2' zu setzen? – BenG

+0

Ok, werde ich. Warum unten abstimmen? – rickyProgrammer

+0

hi @BenG i TRIED es hat sich etwas verbessert, aber die Spalten sind immer noch falsch ausgerichtet. – rickyProgrammer

Antwort

0

ERHALTEN SIE DIE ANTWORT.

Ich schloss zwei Javascript-Funktionen. Zuerst lege ich den ersten Javascript-Code in eine Funktion und rufe ihn in der Sekunde auf. Siehe Codes

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script> 
<script src="jquery/JQueryUICalendar/js/gridviewScroll.min.js" type="text/javascript"></script> 


<script type="text/javascript"> 

    function callGridviewScroll() { 
     var $160 = jQuery.noConflict(); 
     $160(document).ready(function() { 
      gridviewScroll(); 
     }); 

     function gridviewScroll() { 
      $160('#<%=grdTenant.ClientID%>').gridviewScroll({ 
       width: 1080, 
       height: 340, 
       // freezesize: 2, //kung gusto mag free yung column enable this pls 
       //IsInUpdatePanel: true 
       arrowsize: 30, 
       varrowtopimg: "images/arrowvt.png", 
       varrowbottomimg: "images/arrowvb.png", 
       harrowleftimg: "images/arrowhl.png", 
       harrowrightimg: "images/arrowhr.png" 
      }); 
     } 


</script> 


     <script type="text/javascript"> 
      var $KeyPressSearch = jQuery.noConflict(); 
      function filter2(phrase, _id) { 

       var words = phrase.value.toLowerCase().split(" "); 
       var table = document.getElementById(_id); 

       var ele; 
       for (var r = 1; r < table.rows.length; r++) { 
        ele = table.rows[r].innerHTML.replace(/<[^>]+>/g, ""); 
        var displayStyle = 'none'; 
        for (var i = 0; i < words.length; i++) { 
         if (ele.toLowerCase().indexOf(words[i]) >= 0) 
          displayStyle = ''; 
         else { 
          displayStyle = 'none'; 
          break; 
          callGridviewScroll(); 

         } 

        } 
        table.rows[r].style.display = displayStyle; 

       } 

       var lblTotalDSRdata = $KeyPressSearch("#grd tr").length; 

      } 




</script> 

So ein gridview Kopf Fixing während eines Auto-Filter Durchsuchung von Datensätzen in es durchzuführen, ohne neu ausrichten oder Fehlausrichtung der Säulen und über-all-Format ist gelöst. Ich hoffe, es könnte auch anderen helfen.

Verwandte Themen