1. 程式人生 > >在GridView中新增按鈕後,如何觸發按鈕的各種事件?

在GridView中新增按鈕後,如何觸發按鈕的各種事件?

//GridView中新增按鈕後,如何觸發按鈕的各種事件?

1.在GridView的“編輯列”屬性視窗中,增加新的Botton列。

2.然後再該視窗右邊屬性中,將外觀項下的ButtonType設定一下,設定項有:如:Link、Button、Image。

3.屬性設定完成後,在右邊屬性列表視窗的下方有這樣一行超連結藍字:將此欄位轉換為TemplateField,單擊這個超連結,把該列插入進來的欄位轉換為模版。

//添加了一個刪除控制元件,並將其轉換為模版後的程式碼,該控制元件還和在GridView所在行的主鍵進行繫結,把主鍵作為引數帶到該控制元件的各個事件函式中。

<asp:TemplateField

 ShowHeader="False" HeaderText="刪除">

             <ItemTemplate>

                    <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandArgument='<%# Eval("ClientID") %>'

                            OnClick="LinkButton1_Click" Text="刪除"></asp:LinkButton

>

                </ItemTemplate>

       </asp:TemplateField>

//這是一個沒有繫結欄位值的新增Button列,將其裝換為模版後的程式碼如下:

<asp:TemplateField>

             <ItemTemplate>

                 <asp:Button ID="Button2" runat="server" CausesValidation="false" CommandName="" Text="按鈕" OnClick="Button2_Click"

 />

             </ItemTemplate>

     </asp:TemplateField>

4.  然後即可在編輯模版狀態下,編輯、設定這個控制元件的各種事件了,比如雙擊這個控制元件按鈕,系統則會自動在.cs檔案中新增該控制元件的OnClick事件觸發的函式。

注意:如果你的GridView中加入了多個轉換為模版的列,進入編輯模版狀態後,要選擇相應的轉換為模版的列,才能進行編輯。如下圖:


另:在cs檔案中呼叫Gridview中按鈕繫結的值:

 1protectedvoid LinkButton2_Click(object sender, EventArgs e)
 2    {
 3        SqlConnection myconn;
 4        SqlCommand mycommand;
 5        myconn =new SqlConnection(ConfigurationManager.ConnectionStrings["BaseConnectionString"].ConnectionString);
 6        string sql ="update Bbs_Message set ISTOP=1 where Bbs_MessageIS="+ ((LinkButton)sender).CommandArgument.ToString();
 7        //Response.Write(sql); 8        myconn.Open();
 9        mycommand =new SqlCommand(sql, myconn);
10        mycommand.ExecuteNonQuery();
11        myconn.Close();
12
13        Response.Redirect("SQS_ADD3.aspx?XkzSqsID="+ Request.QueryString["XkzSqsID"].ToString());

14    }

做網站的時候 會出現很多的不同的問題,很多書上又找不到,對於GridView的應用書上學來終覺淺呀!

網上找了很多,也試了很多方法 終於找到了簡單的語句。在這裡分享下,希望幫到大家。

自定義操作獲取GridView行的索引:

例:在GridView模板中新增Button,單擊Button的時候希望獲取該操作行row,


    protected void Button1_Click(object sender, EventArgs e)
    {  

 int row = ((GridViewRow)((Button)sender).NamingContainer).RowIndex;

//獲取該操作行中的其他控制元件  因為不可直接引用. 

 LinkButton lnk = (LinkButton)gv.Rows[row].FindControl("LinkButton1");

……//其他語句

}

GridView中設定隱藏列並獲取隱藏列的值

網上大多是設定DataKeyNames來實現,還可以用模板來實現:

asp:TemplateField HeaderText=" " Visible="false"> //模板列設定成不可見。
     <ItemTemplate>
          <asp:Label ID="Label1" runat="server" Text='<%# eval_r("欄位名") %>' />
                                    </ItemTemplate>
                                </asp:TemplateField>

Im獲取還是用:

Label lbl = (Label)gv.Rows[row].FindControl("Label1");

string text=lbl.Text;//即為Lable1的值。

簡單易明的實現效果,這篇就這樣了。


相關推薦

記錄Android開發一個小坑佈局檔案TextView新增onClick點選無效問題

自己寫東西的時候,在TextView上添加了onClick去增加點選事件,去跳轉另一個Activity,執行後結果點選無效,新增Toast,Toast也不顯示,程式碼如下: <TextView android:layout_width="wrap_content"

iOS 在xib或者storyboard新增AutoLayout在程式碼修改AutoLayout約束條件

如果是viewControl則AutoLayout適配寫在- (void)updateViewConstraints方法中修改約束; 如果是view則AutoLayout適配 則在- (void

JTable新增元件改變當選時的背景色

在JTable中新增元件後,當我們選中某一行時,我們會發現其他欄的背景色會變為table設定的選中背景色,而帶有元件的那一欄背景色卻不變 這時,我們需要在TableCellRenderer中新增一個填充方法 下面以JLable元件為例: import java.awt.C

“display:block-inline形式的Span或Div新增文字導致Span或Div排版掉落、錯位”的原因及解決方法

在開始用display:inline-block的時候,只知道有baseline這麼一說,而且當時記筆記解決了空隙問題,百度一堆文章,什麼終極解決辦法等等,還記錄了一些問題,當時不明白,到今天才明白verticle-align的用法,原來可以這麼用,以後可以隨便玩inli

asp.net gridview新增checkbox列用於全部選中記錄或取消全選

方法一:使用javascript程式碼控制                          前臺程式碼: <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">

GridView新增按鈕如何觸發按鈕各種事件

//在GridView中新增按鈕後,如何觸發按鈕的各種事件? 1.在GridView的“編輯列”屬性視窗中,增加新的Botton列。 2.然後再該視窗右邊屬性中,將外觀項下的ButtonType設定一下,設定項有:如:Link、Button、Image。 3.屬性設定完成後

C# winform 上傳圖片顯示圖片和gridview新增按鈕

上傳圖片,顯示圖片using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using Syst

jQuery Mobilesubmit按鈕提交其他元素DOM事件丟失

(1)現象: 引用jQuery Mobile,為頁面中的一個button繫結事件,使用submit按鈕提交表單。 結果,頁面“看起來”像是重新整理了,但是重新整理後button按鈕的事件丟失了。 例如: <input type="submit" id="submit1" val

7.2在框架新增一個面板背景色設為黃色在面板新增兩個按鈕

摩爾的Java學習筆記7.2 第七週作業: 1、在視窗(寬300,高200)中新增一個面板,面板的背景色為綠色,視窗在螢幕中央,不允許改變其大小,關閉視窗時程式結束執行; 2、在

winform的datagridview有新增按鈕響應按鈕的點選事件

有兩個事件可以響應: 觸發事件是DataGridView的CellContentClick或CellClick事件 但是可惜的是兩個都不是專門響應按鈕列事件的, CellClick是單擊單元格任意部分發生 CellContentClick是單擊單元格內容時發生

在點選按鈕觸發複選框選中的內容

package sftp; import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; i

所有input輸入完成改變按鈕顏色

ffffff nbsp rim fff val car cti chang rop $(function(){ $(‘input‘).on(‘input propertychange‘,function(){ if(($.trim($(‘.add1

vue 表格資料編輯點選取消或者完成按鈕關閉編輯狀態沒有及時生效

點選編輯按鈕: 編輯狀態下,表格可以編輯。但是點選“確認”或者“取消”按鈕,列資料編輯狀態已經修改,但是檢視沒有改變。  頁面程式碼: 獲取當前行的index,並直接修改當前行用於判斷是否編輯狀態的資料為false(不可編輯);   根本原因是因為vue的檢視更新不及

vue 表格數據編輯點擊取消或者完成按鈕關閉編輯狀態沒有及時生效

分享 inf bsp 狀態 修改 點擊 視圖 進行 解決 點擊編輯按鈕: 編輯狀態下,表格可以編輯。但是點擊“確認”或者“取消”按鈕,列數據編輯狀態已經修改,但是視圖沒有改變。 頁面代碼: 獲取當前行的index,並直接修改當前行用於判斷是否編輯狀態的數據為false

js或者jQuery模擬點選提交按鈕button觸發提交操作

一般情況下提交form表單,都是手動點選提交按鈕,但是為了簡化使用者操作,有時候需要自動提交表單,或者做了其他某一個操作(非提交操作)之後自動提交表單,可以使用js或者jQuery模擬點選提交按鈕,然後提交,觸發提交操作 不只是提交表單,其他需要點選的時候都可以這麼寫,不用人手動點選而達到手

Button使用模板Trigger使用MouseOver時候滑鼠滑動時候不能觸發響應

專案中遇到在重寫Window類,自定義一個最大,最小和關閉按鈕。此時出現一個問題,繪製最小按鈕的橫線的時候,MouseOver有觸發修改背景顏色,但是實際滑鼠划過去後,只有觸到橫線的時候才會觸發那個Trigger。但是提前設定了背景後就不會。 解決方法:將Border的Background設定成

使用SwingWorker 點選按鈕按鈕不讓點選在處理完之後顯示為可點

public void actionPerformed(ActionEvent e) { btn_convert.setEnabled(false); new ConvtSwingWorker().execute(); } private class Con

.NET新增引用但在程式碼使用using時卻找不到名稱空間?

在同一個解決方案(.sln)下的A工程(.csproj)引用B工程的.dll後,在程式碼中使用using是無法找到對應名稱空間。 如圖1所示,MCC.Client引用了MCC.Business工程生成的.dll,但在圖2中,報了“Error 2 The type or namespace name '

點選jsp頁面按鈕禁用整個頁面的方法

我們經常會遇到這種情況,比如某個頁面上的付款按鈕,我們有可能連續點選的幾次,從而造成多次付款的情況,解決的方法為當點選第一次後,禁用整個頁面,顯示正在處理中畫面,這時需要如下程式碼 首先引入下面的js <script type="text/javascript"

ios7自定義返回按鈕右滑返回功能失效解決方法

http://blog.sina.com.cn/s/blog_9592635a0101fuk9.html -(void)viewWillAppear:(BOOL)animated{   [super viewWillAppear:animated];   //開啟i