国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

關于ListView下隱藏控件的解決方案分享

2024-07-10 13:24:07
字體:
來源:轉載
供稿:網友
這是ListView模板里的代碼,貼一下,方便理解:
方案一:

復制代碼 代碼如下:


<SPAN>就是想把DeleteButton 和EditButton 2個按鈕隱藏</SPAN>


復制代碼 代碼如下:


<ItemTemplate>
<tr>
<td>
<asp:Button runat="server" CommandName="Delete" Text="刪除" />
<asp:Button runat="server"
CommandName="Edit" Text="編輯" />
</td>
<td>
<div>
<asp:Label runat="server" Text='<%# Eval("UserName") %>' /></div>
</td>
<td>
<asp:Label runat="server" Text='<%# Eval("Age") %>' />
</td>
<td>
<asp:Label runat="server" Text='<%# Eval("IdentityCard") %>' />
</td>
<td>
<asp:Label runat="server" Text='<%# Eval("LoginDate","{0:yyyy-MM-dd}") %>' />
</td>
<td>
<asp:Label runat="server" Text='<%# Eval("LeaveDate","{0:yyyy-MM-dd}") %>' />
</td>
<td>
<asp:Label runat="server" Text='<%# Eval("Population") %>' />
</td>
<td>
<asp:Label runat="server" Text='<%# Eval("HouseID") %>' />
</td>
</tr>
</ItemTemplate>


一開始,覺得這挺簡單,就寫下了下面的代碼:

復制代碼 代碼如下:


protected void ListView1_ItemCreated(object sender, ListViewItemEventArgs e)
{
Button DeleteButton = (Button)ListView1.FindControl("DeleteButton");
Button EditButton = (Button)ListView1.FindControl("EditButton");
string username = Session["username"].ToString();
if (username != "admin")
{
EditButton.Visible = false;
DeleteButton.Visible = false;
}
}


可是,當運行的時候,就開始報錯說,將對象引用設置到對象的實例。就是說沒有找到這個控件,我就很奇怪了,覺得很沒有道理。按理ItemCreated是在初始化行之后,然后進行找控件,應該沒問題。
這個問題,想了很久,沒有結果,然后就和我一個同學(他技術不錯)開始討論,剛開始他說是,就是說當運行頁面的時候,在
去查看源碼帶的時候,發現DeleteButton這個控件的ID 變樣了,變成了ListView1_ctrl0_DeleteButton這樣子。對于這個問題,
我一直到現在還沒有想通,不知道MS怎么會搞這個出來?服務器控件不是好好的渲染到頁面了,怎么變ID了呢?沒理由。呵呵~~
然后,我同學經過調試后,給出了一個解決方案是:

復制代碼 代碼如下:


protected void ListView1_ItemCreated(object sender, ListViewItemEventArgs e)
{
Button DeleteButton = (Button)ListView1.FindControl("DeleteButton");
Button EditButton = (Button)ListView1.FindControl("EditButton");
string username = Session["username"].ToString();
if (username != "admin")
{
if (DeleteButton != null && EditButton != null)
{
EditButton.Visible = false;
DeleteButton.Visible = false;
}
}
}


這樣子就可以了。就是多加了一句:if (DeleteButton != null && EditButton != null)的判斷。
方案二:
很有才的是,我宿舍的一位河北的同學也給出了一種解決方案,不過這種寫法看起來有點不可思議,呵呵,一起看看
吧!

復制代碼 代碼如下:

<asp:Button runat="server" Visible='<%#Session["username"]=="admin"?true:false %>'


就是這樣子,也可以把控件給隱藏。因為session是全局變量,所以可以在頁面中取到這個值。

作者:Lanny☆蘭東才
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 凤冈县| 临江市| 沙田区| 开化县| 裕民县| 清河县| 信阳市| 黄梅县| 盐边县| 邻水| 铜梁县| 桑植县| 安丘市| 扶风县| 宁德市| 平舆县| 高台县| 西和县| 含山县| 余江县| 明水县| 大厂| 和林格尔县| 昭苏县| 丰都县| 应城市| 镇沅| 邵武市| 甘德县| 沙田区| 高碑店市| 锡林郭勒盟| 砚山县| 东丰县| 锡林浩特市| 蓝山县| 贵州省| 铅山县| 济源市| 石阡县| 垫江县|