本篇文章為大家展示了在DataGrid項目中實現(xiàn)超鏈接的方法有哪些,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
1.使用DataGrid中的超鏈接列—HyperLinkColumn
相信很多人都使用過datagrid中的超鏈接列,它很好用,默認(rèn)情況下只能傳遞一個參數(shù),如下所示:
復(fù)制代碼 代碼如下:
<asp:HyperLinkColumn DataTextField="CompanyName" DataNavigateUrlField="CustomerID" DataNavigateUrlFormatString="Default2.aspx?customerid={0}" eaderText="link">
</asp:HyperLinkColumn>
從上可以看出,傳遞一個參數(shù)的超鏈接是很容易做到的。那么傳遞多個參數(shù)該如何做?
2.在DataGrid的ItemDataBound事件中對超鏈接列賦值
假設(shè)有一個id為DataGrid1的Datagrid,第一列為超鏈接列(下標(biāo)為0),那么它的ItemDataBound事件可寫成下面形式。
復(fù)制代碼 代碼如下:
private void DataGrid1_ItemDataBound(object sender,System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType==ListItemType.Pager||e.Item.ItemType==ListItemType.Header||e.Item.ItemType==ListItemType.Footer)
{
return; //判斷是否為頁眉,頁腳
}
else
{
HyperLink link=( HyperLink)e.Item.Cells[0].Controls[0];//這里也可以用findcontrol
link.NavigateUrl="webform3.aspx?id=XXX & name=XXX";
//如果跟某列有關(guān),則可寫為
// link.NavigateUrl="webform3.aspx?id=”+e.Item.Cells[列號].text;
}
}
如果想在模版列使用超鏈接,可以在該列模版設(shè)為LinkButton,可以多個LinkButton在一起,不過id不能相同。我們?nèi)约俣ㄔ摿形皇堑谝涣?,此時,為其中某個LinkButton定義鏈接可以如下,把語句
復(fù)制代碼 代碼如下:
HyperLink link=( HyperLink)e.Item.Cells[0].Controls[0];
替換成
復(fù)制代碼 代碼如下:
LinkButton link=( LinkButton)e.Item.Cells[0]. FindControl(“LinkButton的id”);
link.Attributes["onclick"] = "<script>location.href='XXX.aspx';</script>";
當(dāng)該列只有一個控件即一個LinkButton時,可以用如下語句來實現(xiàn):
復(fù)制代碼 代碼如下:
e.Item.Cells[0].Attributes["onclick"] = "<script>location.href='XXX.aspx';</script>";
這樣就省去查找控件的時間。
上面實際我們已經(jīng)說到兩種方法,一種利用HyperLinkColumn列在ItemDataBound事件里添加NavigateUrl,另一種是在ItemDataBound事件中使用javascript定義click事件,后者比較靈活,只需控件有click事件即可。
3.使用HTML超鏈接標(biāo)記
復(fù)制代碼 代碼如下:
<asp:TemplateColumn>
<ItemTemplate>
<a href="Default.aspx?id='<%#(String)DataBinder.Eval(Container.DataItem,"CustomerID")%>'
&name='<%#(String)DataBinder.Eval(Container.DataItem,"CompanyName")%>'">操作</a>
</ItemTemplate>
</asp:TemplateColumn>
它功能就是點擊時轉(zhuǎn)到Default.aspx,同時傳遞參數(shù)id和name,這里兩個參數(shù)都是通過數(shù)據(jù)綁定動態(tài)生成。這種方法在VS2005中是成功的,但是在VS2003中卻報錯。
還有一種方法很巧妙,它同樣實現(xiàn)第三種方法的功能:假設(shè)第二列做為超鏈接,aspx頁面代碼:
復(fù)制代碼 代碼如下:
<asp:boundcolumn DataField="ID" Visible=False></asp:boundcolumn> //第一列
<asp:boundcolumn DataField="名稱"></asp:boundcolumn>//第二列
ItemDataBound事件如下:
復(fù)制代碼 代碼如下:
public void DataGrid1_ItemDataBound(object sender,DataGridItemEventArgs e)
{
if(e.Item.ItemType==ListItemType.Pager||e.Item.ItemType==ListItemType.Header||e.Item.ItemType==ListItemType.Footer)
{
return;//判斷是否為頁眉,頁腳
}
else
{
e.Item.Cells[1].Text="<a href=News.aspx?ID="+e.Item.Cells[0].Text+">"+e.Item.Cells[1].Text+"</a>";//這里可以改成你需要的;
}
}
上述內(nèi)容就是在DataGrid項目中實現(xiàn)超鏈接的方法有哪些,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
分享標(biāo)題:在DataGrid項目中實現(xiàn)超鏈接的方法有哪些-創(chuàng)新互聯(lián)
標(biāo)題URL:http://newbst.com/article22/dgiccc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、網(wǎng)站排名、虛擬主機(jī)、品牌網(wǎng)站設(shè)計、網(wǎng)站策劃、網(wǎng)站營銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容