日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GridView里面的HyperLink和ButtonField操作总结

發(fā)布時間:2025/6/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GridView里面的HyperLink和ButtonField操作总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

??HyperLink的操作前段時間已經(jīng)研究的頗有心得了,但是ButtonField卻一直沒有解決,這個問題困擾了我多日,中間因為考試中段了一段時間,現(xiàn)在重新找出來發(fā)現(xiàn)問題還是沒有解決,在查找了一些資料之后終于搞定了,其實挺簡單的,這里面用到了一個小技巧,那就是使用TemplateField。

????懶得自己寫了,總結(jié)一下別人做過的工作吧。

------------------愛國分界線----------------------

????HyperLink的應(yīng)用只要是頁面轉(zhuǎn)向,中間要設(shè)置一些諸如ID啊、NAME啊之類的屬性,用起來非常方便,其主要屬性設(shè)置為:

<asp:HyperLinkField?DataNavigateUrlFields="UserId,UserName"?DataNavigateUrlFormatString="userdetail.aspx?UserId={0}?&amp;?UserName={1}"?DataTextField="UserName"?HeaderText="用戶詳細信息"?Target="_blank"?/>

看上去是不是非常強悍?用起來更強悍!

????ButtonField的屬性主要的就一個CommandName,看起來很羸弱,用起來也是如此。看看它的典型應(yīng)用的屬性設(shè)置吧:

<asp:ButtonField?ButtonType="Button"?CommandName="Click1"?Text="按鈕點擊事件1"?/>
<asp:ButtonField?ButtonType="Button"?CommandName="Click2"?Text="按鈕點擊事件2"?/>

protected???void??GridView1_OnRowCommand(?object??sender,?GridViewCommandEventArgs?e)

{

???????if??(e.CommandName.ToString()?==("Click1"))

???????????Label1.Text?=?"you?Click"?+?e.CommandName.ToString()+1111;

??????else

??????????Label1.Text?=?"you?Click"?+?e.CommandName.ToString()?+?222;

}

這個CommandNam就是為了判斷選取的是哪一列的按鈕。雖然代碼和屬性都很簡單,但是ButtonField應(yīng)用起來很多地方不方便,比如在AJAX架構(gòu)中放在UpdatePanel種的時候,使用JavaScript就讓人困擾。于是我們來介紹一下模板列TemplateField。

????????很多ASP.NET 2.0程序設(shè)計高手在網(wǎng)上貼了很多怎么轉(zhuǎn)換和使用模板列,我這里就直接拿過來了:

1、點擊GridView的快捷箭頭,選‘編輯列’。
2、加入一個ButtonFiled,在右邊的屬性框里設(shè)置HeadText(用以顯示),定義一個CommandName(用以你點擊以后觸發(fā)的動作)
3、點右下角的‘轉(zhuǎn)化為模版列’,ok。
4、右擊GridView,‘編輯模版’--‘Column[..]--你之前定義的HeadText’,ItemTemplate里看見你的按鈕了嗎?點中,屬性里有一項‘OnClientClick’,把“javascript:return confirm('真的要刪除嗎?');”粘貼進去。
5、搞定你需要的功能了。
6、如果你想點擊按鈕觸發(fā)其他事件,可以在RowCommand事件里詳細寫。。。
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs?e)
{
????if (e.CommandName == "MyBtnClicked")//前面你定義的CommandName
????{
????????Response.Write("kkk clicked");
????}
}

如果你使用了微軟的數(shù)據(jù)源空間SqlDataSource,那么你還可以直接設(shè)置Button將要操作的數(shù)據(jù)列,而不用再去寫代碼,如下設(shè)置:

1、在前面的步驟4中,你在itemTemplate里看見你的按鈕右上角的小箭頭了吧,verygood,點擊‘編輯DataBings’。。。
2、看見這一級別的綁定了嗎?把 CommandArgument和你想操作的字段綁定吧。。。(右邊下拉列表選擇)
3、ok,現(xiàn)在你可以類似下面方法調(diào)用
------------------
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs?e)
{
????if (e.CommandName == "MyBtnClicked")
????{
????????Response.Write("you wanted " + e.CommandArgument.ToString());
????}
}
------------------
你無非就是想取到結(jié)果集中的cell里的內(nèi)容,現(xiàn)在你想得到的內(nèi)容綁定在CommandArgument里了,你就不用再什么index什么cell[].text了(復(fù)雜的cell你還要findcontrol,呵呵)

OK,這就是模板列最有意思的應(yīng)用了,當(dāng)然了,應(yīng)該還有更加強大的應(yīng)用,但是迄今為止我用到的也就這么一些了,也只能介紹這么多了。我最喜歡的還是很方便的就可以在里面添加JavaScript代碼,很強大。

?

????今天的總結(jié)就這么寫了,以后遇到問題隨時分享。

總結(jié)

以上是生活随笔為你收集整理的GridView里面的HyperLink和ButtonField操作总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。