[問題] GridView對應不同使用者顯示編輯/刪除
我有個頁面功能是上傳檔案,但要登入才可以上傳,
上傳後會記錄檔案是誰傳的,並且使用GridView將資料select出來。
請問這個GridView可以對應不同使用者顯示編輯跟刪除嗎?
當然,其他使用者新增的資料還是可以瀏覽,只是不能更動。
謝謝各位的回答。
--
http://www.youtube.com/watch?v=zqzVtROqPQI
お耳がぴょんぴょん♪ともちんこと板野友美です。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 223.138.165.229
推
02/09 18:37, , 1F
02/09 18:37, 1F
感謝。
請問一個問題,我的GridView明明就有資料載入。但是當我用類似
GridView1.FindControl("LinkButton1")都會出錯說GridView是null.
因為本來想說如果不是登入者的話,就把LinkButton的Visible設成
false。
※ 編輯: TheThird 來自: 223.138.165.229 (02/09 18:57)
推
02/09 18:59, , 2F
02/09 18:59, 2F
→
02/09 19:00, , 3F
02/09 19:00, 3F
我第一次在RowDataBound出例外,後來改到jQuery也出錯。
沒用過e.Row.FindControl(),來試試@@
※ 編輯: TheThird 來自: 223.138.165.229 (02/09 19:04)
我用LinkButton lb = (LinkButton)e.Row.FindControl("delete");
可以找到LinkButton,但是我用
lb.Visible = false;
就會出現「並未將物件參考設定為物件的執行個體」
描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯
誤的詳細資訊,以及在程式碼中產生的位置。
例外詳細資訊: System.NullReferenceException: 並未將物件參考設定為物件的執行個
體
這個例外Orz...
抱歉我找到問題了,要寫在if (e.Row.RowType == DataControlRowType.DataRow)
裡面。
--
解決了。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs
e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton lbDel = (LinkButton)e.Row.FindControl("delete");
lbDel.Visible = false;
LinkButton lbEdit = (LinkButton)e.Row.FindControl("edit");
lbEdit.Visible = false;
if (Page.User.Identity.Name == e.Row.Cells[5].Text)
{
lbDel.Visible = true;
lbEdit.Visible = true;
}
}
}
不過不知道有無更好的方法@@
※ 編輯: TheThird 來自: 114.136.254.13 (02/10 12:53)
推
02/10 17:11, , 4F
02/10 17:11, 4F
→
02/10 17:12, , 5F
02/10 17:12, 5F
使用datakey撈資料出來是不是還是得加上if else判斷,
如果是的話,這樣魔改似乎比較節省(coding)時間,不過不知道
有沒有效能上的差異@@ 像是用datakey比較快?
※ 編輯: TheThird 來自: 114.136.254.13 (02/10 19:39)
推
02/10 23:14, , 6F
02/10 23:14, 6F
→
02/10 23:15, , 7F
02/10 23:15, 7F