2010年5月6日 星期四

jQuery 的表格資料列選取

早期我們在寫asp的時候為了達到使表格的每一列資料有所區隔通常會作成

單數列一種樣式

雙數列一種樣式

這樣看起來會比較輕鬆

每一筆資料分的很清楚

但是在寫code的時候常常會寫成類似這樣

   1: dfsgfs



   2: dfgsdpgojsdfog



   3: sdlgjidfs;g



   4: string j = new string();




這是在普遍不過的做法了



現在jQuery有一種更快的方法





<script type="text/javascript">



    $(document).ready(function() {



        $("#Button1").bind(



        "click",



        function() {



            randomLST("getRow");



        }



        );



    })



 



    function randomLST(group) {



        var getRow = $("#" + group + " tr");


        getRow.each(function(index, dom) {


            var ran = Math.round(Math.random() * getRow.length);


            tmpTd = $(dom).html();


            $(dom).html(getRow.eq(ran).html());



            getRow.eq(ran).html(tmpTd);



        })



    }



</script>




html部分就只要類似這樣





string _asyncConn = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString;



SqlConnection _conn = new SqlConnection(_asyncConn);



_conn.Open();



SqlCommand _cmd = _conn.CreateCommand();



_cmd.CommandText = "waitfor delay '00:00:05' SELECT top 100 * FROM Orders o";



_cmd.BeginExecuteReader(new AsyncCallback(delegate(IAsyncResult iar)



{



    DataTable _table = new DataTable("Orders");



    _table.Load(_cmd.EndExecuteReader(iar));



    dataGridView1.Invoke(new Action(delegate()



    {



        dataGridView1.DataSource = _table;



    }));



}), null);



_cmd.Dispose();



_conn.Close();



_conn.Dispose();




只要運用一下選擇器就可以輕鬆達成



再也不必跑迴圈作運算囉



$("#tableName tr:not(:even)")也可以寫成



$("#tableName tr:odd") 怎麼用就端看你的喜好囉