1. 程式人生 > >ASP.NET GridView 後臺繫結行點選行觸發SelectedIndexChanged,頁面重新整理後,只有一頁的情況下,事件只觸發一次

ASP.NET GridView 後臺繫結行點選行觸發SelectedIndexChanged,頁面重新整理後,只有一頁的情況下,事件只觸發一次

如題,小弟剛接觸asp.net不久,所以有很多不懂,望高手們不吝賜教。

下面進入正題,後臺程式碼如下

<pre name="code" class="csharp"> protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)//判定當前的行是否屬於datarow型別的行
        {
            //當滑鼠放上去的時候 先儲存當前行的背景顏色 並給附一顏色
            e.Row.Attributes.Add("onmouseover", "currentcolor=this.style.backgroundColor;this.style.backgroundColor='#7f9edb',this.style.fontWeight='';");
            //當滑鼠離開的時候 將背景顏色還原的以前的顏色
            e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=currentcolor,this.style.fontWeight='';");
            //當滑鼠放上時,指標為手指的形狀
            e.Row.Attributes["style"] = "cursor:hand";

            //新增行點選事件
            //e.Row.Attributes.Add("onclick", "SelectClick(" + e.Row.RowIndex + ")");

            //點選行觸發SelectedIndexChanged事件
            PostBackOptions myPostBackOptions = new PostBackOptions(this);
            myPostBackOptions.AutoPostBack = false;
            myPostBackOptions.PerformValidation = false;
            myPostBackOptions.RequiresJavaScriptProtocol = true; //加入javascript:頭
            String evt = Page.ClientScript.GetPostBackClientHyperlink(sender as GridView, "Select$" + e.Row.RowIndex.ToString());
            e.Row.Attributes.Add("onclick", evt);
        }

希望在頁面點選一行的時候產生一個SelectedIndexChanged事件以便處理的,結果出現了一下情況

當這個gridview有分頁的時候,點選行是可以觸發時間的,無論頁面重新整理多少次,圖如下:


,但是當gridview只有一頁的時候,第一次點選行會觸發SelectedIndexChanged事件,但是第二次、第三次、。。點選就不觸發事件了,圖如下:


小弟用的google瀏覽器,審查元素時出現如下錯誤


審查元素——》檢視沒點選之前的頁面,發現頁面有這樣一個地方


點選之後,審查元素,發現相同的兩個div變成了下面的樣子


明顯的第一個圖中的第一個div中比第二個多了幾個隱藏的input,同時這兩個div中間少了一段js,其中就包含了__doPostBack

方法,點選之後,頁面重新整理了就沒有了,這個問題一直都讓我很困擾,在網上查找了半天也沒找到合適的解決方法,希望有高手看到解答一下,同時也記錄下自己遇到的問題,以便某一天遇到同樣的問題無從下手。</span>


相關推薦

ASP.NET GridView 後臺觸發SelectedIndexChanged頁面重新整理只有情況事件觸發

如題,小弟剛接觸asp.net不久,所以有很多不懂,望高手們不吝賜教。 下面進入正題,後臺程式碼如下 <pre name="code" class="csharp"> protected void GridView1_RowDataBound(object se

ASP.NET-GridView資料的幾種方法

前提:頁面需要顯示多個表中的欄位,幾個表之間通過欄位保持聯絡 方法一:直接進行級聯查詢,並將結果集通過SqlDataAdapter填充DataSet,之後將DataTable的DataView繫結到GridView的資料來源,: //連線資料庫,並獲得返回結果; public dataset GetR

本地化ASP.NET核心模型錯誤訊息

1 services.AddMvc(options => 2 { 3 IStringLocalizerFactory F = services.BuildServiceProvider(). 4

asp.net中將資料庫到DataList控制元件的實現方法與例項程式碼

解決方法1: datalist databind() 解決方法2: 檢視MSDN上的詳細說明資料 解決方法3: 在DataList的模板中用table表格,如: 複製程式碼 程式碼如下: <asp:DataList ID="dlDetailedInfo"

ASP.NET單值和多值(c#+VS2010)

一、單值繫結 新建一個ASP.NET網站模板->雙擊網站根目錄下的Default.aspx檔案,開啟設計檢視,從工具箱中拖一個label控制元件到設計檢視中->切換到源檢視中,設定label控制元件的屬性如下: <asp:Label ID="Label1

ASP.NET》資料—DataList實踐篇

    上篇文章大概講了DataList的一些基礎知識,掌握這些知識在將來的應用中起到很大的作用,現在我們就開始講上篇文章中說的基礎知識做一個小例子。     首先,我機子的資料庫中有一張person

ASP.net DropDownList資料及使用詳解

1.       dropdownlist 繫結資料 1.1  固定繫結(適合已經固定的資料繫結到dropdownlist) 例項: <asp:DropDownList runat="server"ID="ddlArea" Width="120px" > &l

利用chrome瀏覽器進行js除錯並找出元素事件詳解

大家有沒有遇到這樣的一個問題,我們在分析一些大型電子商務平臺的Web前端指令碼時,想找到一個元素繫結的點選事件,並不是那麼容易,因為有些前端指令碼封裝的比較隱蔽,甚至有些加密指令碼,用傳統的查詢元素ID、或者頁面原始碼方法去找,可能最後徒勞無功。下面我來介紹利用chrome瀏覽器來查詢元素繫

ios移動端關於事件區域閃屏的解決

最近做移動端的,在一塊區域內繫結事件之後,在安卓上面沒有任何問題,然而在iphone上卻會出現閃屏,參考一些知名移動端的框架,例如bootstrap,在html和body標籤上會新增上下面的這個csss屬性: -webkit-tap-highlight-c

asp.net中的html控制元件事件與伺服器控制元件事件的不同

ASP.NET中Onclick和OnserverClick事件的區別 對於伺服器按鈕控制元件(即<asp:Button>型別的按鈕): 伺服器響應事件:OnClick 客戶端響應屬性:OnClientClick 對於html按鈕控制元件(即<input t

js實現快捷鍵按鈕事件

document.onkeydown= function (e) { var theEvent = window.event || e;  var code = theEvent.keyCode || theEvent.which;  if (code == 13) {

如何最快速的找到頁面元素所事件並檢視js程式碼

比如我要檢視銀行賬號這個標籤所繫結的事件。 操作過程中使用的是谷歌瀏覽器 第一步:在該元素上右鍵→檢查 第二步:點選Event Listeners 這樣就能看到該元素繫結的所有事件了 第三步:展開click,我們可以看到該元素所繫結點選事件的方法就在 jquery-

vue.js怎樣移除事件

使用v-on:click繫結的事件如何移除??? 現在我的處理方式是: <p @click="flag && clickEvent()"></p> 加上一

【錯誤】混合模式程序集是針對“v2.0.50727”版的運時生成的在沒有配置其他信息的情況無法在 4.0 運時中加載該程序集。

csharp 技術分享 image framework src sharp ted 程序集 方案 解決方案,在app.config中添加一個配置節:startup <?xml version="1.0" encoding="utf-8" ?> <

ASP.NET後臺資料和前臺控制元件的

關於ASP.NET中後臺資料庫和前臺的資料控制元件的繫結問題最近一直在學習個知識點,自己建立了SQL Server資料庫表,想在ASP.NET中連線資料庫,並把資料庫中的資料顯示在前臺,注意,這裡的資料顯示不是使用asp.net自帶的資料顯示控制元件進行資料的繫結,而是使用開源的資料表格外掛DataTable

ASP:Gridview列的常見格式化字串

如下一段程式碼: <asp:boundField DataField="繫結列" headerText="列名稱" dataFormatString="格式化型別" 常見的格式化型別有: 貨幣 {0:C} 科學計數法(指數) {0:E} 輩分比 {0:P} 固定浮點數

ASP.NET GridView中文字內容無法換(自動換/正常換)

最近做專案的時候,遇到這樣一個問題:我用GridView來顯示課程表,每個單元格的內容包括課程名、上課地點、教師姓名,然後我想讓它們分行顯示,效果如下圖: 可是呢,GridView太頑強了,不管我拼接字串時用“\r\n”還是"<br/>",結果都無濟於事,

ASP.NET Gridview 控制單元格換及隱藏列

        特別注意:設定單元格的寬度不起作用,二.控制整個Gridview的換行,在RowDataBound事件中加以下語句        gvDeliverySummary.Attributes.Add("style", "word-break:keep-all;word-wrap:normal");

asp.net gridview標題合併(通用)

效果圖 前臺程式碼 <asp:GridView ID ="GridView1" runat ="server" AutoGenerateColumns ="false"> <Columns>

asp.net GridView表頭的實現

方法一:多行表頭合併效果圖測試多行合併表頭表頭表頭1表頭2表頭3表頭1-1表頭2-1表頭2-2表頭3-1表頭3-2表頭3-3 1 protected void GridView1_RowCreated(object sender, GridViewRowEventA