實例詳解jQuery結(jié)合GridView控件的使用方法
jQuery是一種非常強(qiáng)大的客戶端JS編程技術(shù),這里不想過多闡述它的相關(guān)背景知識,只想簡單演示一下如何與asp.net的控件結(jié)合開發(fā)。
比如,我們要做一個下面如圖所示的功能,效果是狀態(tài)、編號、數(shù)字1、數(shù)字2、平均值所有的項都是通過后臺綁定,如何點擊checkbox按鈕,來實現(xiàn)自動計算當(dāng)前行兩個數(shù)字的平均值呢?前提是用jQuery來實現(xiàn)?

我們直接在頁面的Page_Load事件中輸入如下代碼:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[] {
new DataColumn("id",typeof(Int32)),
new DataColumn("num1",typeof(Int32)),
new DataColumn("num2",typeof(Int32))
});
DataRow dr = null;
dr = dt.NewRow();
dr["id"] = 1;
dr["num1"] = 20;
dr["num2"] = 40;
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["id"] = 2;
dr["num1"] = 40;
dr["num2"] = 30;
dt.Rows.Add(dr);
this.GridView1.DataSource = dt.DefaultView;
this.GridView1.DataBind();
}
}
前臺頁面body部分:
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="狀態(tài)">
<ItemTemplate>
<asp:CheckBox ID="checkstate" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="編號">
<ItemTemplate>
<asp:Label ID="lblId" runat="server"> <%#Eval("id") %></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="數(shù)字1">
<ItemTemplate>
<asp:Label ID="lblNum1" runat="server"> <%#Eval("num1") %></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="數(shù)字2">
<ItemTemplate>
<asp:Label ID="lblNum2" runat="server"> <%#Eval("num2") %></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="平均值">
<ItemTemplate>
<asp:TextBox ID="avg_value" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</form>
</body>
關(guān)鍵的在頁面的head部分,輸入如下代碼就可以實現(xiàn)如圖效果了。
<script src="js/jquery-1.4.2.js"></script>
<script type="text/javascript">
$(function () {
$("#<%=GridView1.ClientID%>").find("tr td input[type=checkbox]").each(function () {
$(this).bind("click", function () {
if (this.checked) {
var id = $(this).parent().parent().find("span[id*=lblId]").text();
var num1 = $(this).parent().parent().find("span[id*=lblNum1]").text();
var num2 = $(this).parent().parent().find("span[id*=lblNum2]").text();
var result = (parseFloat(num1) + parseFloat(num2)) / 2;
$(this).parent().parent().find("input[id*=avg_value]").val(result);
} else {
$(this).parent().parent().find("input[id*=avg_value]").val("");
}
});
});
});
</script>
你會發(fā)現(xiàn)jQuery的代碼讀著很輕松,很容易理解。而且代碼也很優(yōu)美,最關(guān)鍵的是兼容性很好。
再附一個簡單點的例子,這是一個靜態(tài)html頁面,看jQuery是如何發(fā)揮威力的。效果是點擊每一行的按鈕時,彈出當(dāng)前行的text里面的value。
<html>
<head>
<script type="text/javascript" src="jquery-1.4.2.js"></script>
<script type="text/javascript">
$(function(){
$("table tr td").each(function(){
$(this).find("[type=button]").click(function(){
alert($(this).parent().parent().find("[type=text]").val());
});
});
});
</script>
</head>
<body>
<table>
<tr>
<td>1</td>
<td><input type=text value="數(shù)據(jù)1" /></td>
<td><input type=button onclick="GetTest()" value="獲取" /></td>
</tr>
<tr>
<td>2</td>
<td><input type=text value="數(shù)據(jù)2" /></td>
<td><input type=button onclick="GetTest()" value="獲取" /></td>
</tr>
</table>
</body>
</html>
試想,如果我們用js去做,將會很麻煩,而且還要考慮各種瀏覽器的兼容性??吹竭@里不得不感嘆一句,jQuery雖然短小,但是相當(dāng)強(qiáng)大啊。
- 利用jQuery及AJAX技術(shù)定時更新GridView的某一列數(shù)據(jù)
- 如何用jQuery實現(xiàn)ASP.NET GridView折疊伸展效果
- Jquery簡單實現(xiàn)GridView行高亮的方法
- JQuery一種取同級值的方式(比如你在GridView中)
- Jquery+ajax請求data顯示在GridView上(asp.net)
- jquery+ashx無刷新GridView數(shù)據(jù)顯示插件(實現(xiàn)分頁、排序、過濾功能)
- 利用jQuery 實現(xiàn)GridView異步排序、分頁的代碼
- asp.net+jquery Gridview的多行拖放, 以及跨控件拖放
- JQuery的ajax基礎(chǔ)上的超強(qiáng)GridView展示
- jQuery數(shù)據(jù)檢索中根據(jù)關(guān)鍵字快速定位GridView指定行的實現(xiàn)方法
相關(guān)文章
jquery獲取transform里的值實現(xiàn)方法
下面小編就為大家分享一篇jquery獲取transform里的值實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12
jquery mobile實現(xiàn)撥打電話功能的幾種方法
在做一個便民服務(wù)電話,用到移動web中列出的電話,點擊需要實現(xiàn)調(diào)用通訊錄,撥打電話功能,有需要的朋友可以參考一下2013-08-08
JQuery slideshow的一個小問題(如何發(fā)現(xiàn)及解決過程)
在做一個網(wǎng)頁homepage的時候,想用slideshow[1]做圖片切換效果,在打開頁面所以的正常測試都沒問題:當(dāng)瀏覽器同時打開多個tab,停留他tab中的頁面一段時間后,會出現(xiàn)圖片是最后一張圖片,針對這個問題,本文給予了詳細(xì)的解決方法,感興趣的朋友可以了解下2013-02-02

