台灣最大程式設計社群網站
線上人數
1526
 
會員總數:240680
討論主題:186538
歡迎您免費加入會員
討論區列表 >> C# >> 在MasterPage點選Menu如何不影響跑馬燈?篩選後的GridView如何才能編輯該項次?
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
在MasterPage點選Menu如何不影響跑馬燈?篩選後的GridView如何才能編輯該項次?
價值 : 100 QP  點閱數:178 回應數:6

樓主

moneykurt
門外漢
0 4
94 11
發送站內信

語言 ASP.NET C#
1.我在MasterPage有利用marquee做一個跑馬燈,但是只要點選MasterPage的選單(Menu)後,跑馬燈會因為Load ContentPage使得跑馬燈重頭開始跑,我該如何做到點取選單又不影響MasterPage的跑馬燈呢?

2.我在ContentPage加入了一個GridView(有開啟編輯功能)、TextBox、Button,原本Gridview已經透過SqlDataSource將資料顯示出來,而Button_click是利用TextBox輸入的值去篩選後再將Gridview Binding,問題來了!

我點選還未篩選的[編輯]時,都沒問題!但是只要我篩選後,譬如我點了第三項編輯,竟然是編輯[最初的第三項],我是想編輯篩選後的第三項結果變成最初的第三項...是哪裡錯了?
Button_Click程式
{
strint selectstr=TextBox1.Text;
SqlDataSource1.SelectCommand="Select * From hr where name like '%" + selectstr + "%'";
SqlDataSource1.DataBind();
GridView1.DataSourceID="SqlDataSource1";

}





搜尋相關Tags的文章: [ ASP.NET ] , [ C# ] , [ Gridview ] , [ MasterPage ] , [ contentpage ] ,
本篇文章發表於2017-07-14 10:34
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
不錯的參考

小魚
檢舉此回應
第1點, 因為你觸發了PostBack,所以就重新開始跑了啊

第2點, 其實我看不大懂你的畫面長什麼樣, 還有選項?跟篩選邏輯...
本篇文章回覆於2017-07-14 12:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

moneykurt
檢舉此回應
2.圖如下
篩選前畫面有全部資料

篩選後剩下一筆

點選編輯後竟然是[全部的]第一筆資料
本篇文章回覆於2017-07-14 16:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

QZ_CHUNG
檢舉此回應
你是不是在Page_Load抓資料放進GridView內,
如果是的話,加上判斷
if (!IsPostBack)
{
// 程式碼
}

另外,你有SQL Injection的問題
本篇文章回覆於2017-07-17 18:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

moneykurt
檢舉此回應
回QZ大大:
我是直接用GridView控制項然後連結SqlDataSource,並沒有在Page_Load抓取資料!
會是要在GridView的Load事件裡面判斷IsPostBack?
如你所說的話會是這樣寫↓?
GridView1_Load{
[b]if(IsPostBack){
SqlDataSource1.SelectCommand="Select * From hr ";
SqlDataSource1.DataBind();
}[b]
}
本篇文章回覆於2017-07-17 21:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
最有價值解答

QZ_CHUNG
檢舉此回應
太久沒直接綁定資料了,不太清楚

您現在的問題是因為你點選編輯後會PostBack,你的GridView又一開始就綁定資料了(你可以看你aspx上的SqlDataSource.SelectCommand,已經有SelectCommand了)

所以你一點選編輯,GridView又會回到剛開始的狀態,讀取SqlDataSource.SelectCommand。

你可以下中斷點看看。


我昨天測試在 Page_Load 載入資料是可行的

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string SQLstr = @"Select *
From CaseTable";

DataTable CaseTable = np.ConnDB(SQLstr); //連db,我自己的類別庫

GridView1.DataSource = CaseTable ;

GridView1.DataBind();
}
}

protected void Button1_Click(object sender, EventArgs e)
{
//Select Data
}


--
如果哪邊有說錯,還請前輩指教,我會很感謝的
本篇文章回覆於2017-07-18 09:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

moneykurt
檢舉此回應
我後來直接寫在Page_Load中,但並未使用PostBack!目前看起來是可以用的喔~感恩
本篇文章回覆於2017-07-20 15:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.