1. 程式人生 > >如何取得GridView被隱藏列的值

如何取得GridView被隱藏列的值

問題:

在GridView中,在使用者點選按鈕的事件中可以使用下面的方法取當前行中某一列的值(從幫助裡copy出來的程式碼)

int index = Convert.ToInt32(e.CommandArgument);
// Retrieve the row that contains the button clicked 
// by the user from the Rows collection.
GridViewRow row = CustomersGridView.Rows[index];
            
item.Text = Server.HtmlDecode(row.Cells[2].Text);


問題來了,如果你把一列設為隱藏,就發現取出來的是空值。

解決方案:

1 在GridView中將主鍵EmployeeID這一列設為隱藏Visible ="false" , 增加一個button列。同時要注意,將GridView的DataKeyNames設定為"EmployeeID" 

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"   DataKeyNames="EmployeeID"  DataSourceID="SqlDataSource1" OnRowCommand="GridView1_RowCommand"        >
        <Columns>
            <asp:BoundField DataField="EmployeeID" HeaderText="EmployeeID" ReadOnly="True" SortExpression="EmployeeID"  Visible ="false" />
            <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
            <asp:BoundField DataField="LastName" HeaderText="LastName" SortExpression="LastName" />
            <asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" />
            <asp:BoundField DataField="WorkPhone" HeaderText="Phone" SortExpression="WorkPhone" />
            <asp:BoundField DataField="MobilePhone" HeaderText="Mobile" SortExpression="MobilePhone" />
            <asp:ButtonField HeaderText = "Detail" ButtonType="Button" Text ="Detail" CommandName="Detail"    />  
        </Columns>
    </asp:GridView>

2 在GridView1_RowCommand事件中取得EmployeeID列的值

   protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "Detail")
        {

            // Convert the row index stored in the CommandArgument
            // property to an Integer.
            int index = Convert.ToInt32(e.CommandArgument);

            // Get the Key value from the GridView control.
            DataKey key = GridView1.DataKeys[index ];

            string employeeid = key.Value.ToString() ;

            Session["EmployeeID"] = employeeid;
            Server.Transfer("EditEmployee.aspx");

        }

這裡,要點是GridView使用了DataKeys來儲存關鍵列的資料,而不是以前ASP1.1中的那種方式了。如果要把列加入DataKeys,需要在GridView的DataKeyNames屬性中加入列名,而且支援多個列,中間用逗號分割。不僅GridView有此特性,DetailView和FormView都有這樣的屬性。

相關推薦

如何取得GridView隱藏

問題: 在GridView中,在使用者點選按鈕的事件中可以使用下面的方法取當前行中某一列的值(從幫助裡copy出來的程式碼) int index = Convert.ToInt32(e.CommandArgument);// Retrieve the row that con

GridView獲取隱藏的詳細總結

這個問題是比較常見的,網上也有不少類似文章,最近做專案也遇到這個問題,這裡在自己分析基礎上,結合實際問題,總結這一問題的幾種解決方案。 問題提出:在使用GridView控制元件時候,往往需要對某一列進行隱藏,而在後臺程式碼中,有時卻又需要這個隱藏列的值來進行一些別的操作,比如我就遇到一個實際問題:控制元件G

解決無法獲取 GridView 隱藏問題

在 GridView/DetailsView 中如果 BoundField 的 Visible=false 時,  回發的時候無法此列的值(GridViewRow.Cells[cellIndex].Text將為空),網上很多朋友提出了各種各樣的解決方案,這裡整理一下,並提供

獲取GridView中的某

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

datatables隱藏設定及獲取隱藏

"columns": [                   { "data": "name" },                

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

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

Gridview中CheckBox:賦、改變觸發事件

前臺、模板列 <asp:TemplateField HeaderText="" SortExpression="id" Visible="False">、 <ItemTemplate> <asp:Labe

GridView隱藏的方法

在Asp.net 2.0中增加了一個新的資料繫結控制元件:GridView,其目的用來取代Asp.net1.x中的DataGrid控制元件。獲取GridView中的某列值的方法為   protected void GridView1_RowEditing(object sender, GridViewEdit

ASP.NET GridView動態顯示隱藏,並儲存客戶的配置(使用者控制元件Cookie版)

ASP.NET開發中,會遇到有些客戶提出這樣需求,可根據需求編輯GridView列顯示以及隱藏,這個使用者控制元件就是為了這個需求而生。 自動從GridView中獲取所有Visible=true的列,加入到CheckBoxList,並配合Cookie實現本次配置後,下次

C#中GridView隱藏的方法

一開始解決這個問題的時候,查了google,發現都不是我想要的,在 GridViewColumn中,它有個屬性Width,如果設定為0,就沒有顯示出來,其實這個是虛假的,你可以把它再介面上拉長,因此不是我想要的。 後來在網上查到說是用GridView.Columns[

JS隱藏gridview最後一

引言:       親愛的讀者,你好。上篇末尾提到了一個精彩部分,gridview的最後一列進行列印時的隱藏。               如果將最後一列打印出來可就不好看了。那怎麼解決呢。 具體

【玩轉GridView】之簡單實現隱藏

    做專案中有時候,如果設定了gridview隱藏列,問題就變得很簡單,所以小編總結了兩種實驗過的方法分享給大家。 第一種.     在gridview的RowCreated的方法中設定需要隱藏的

datatable隱藏設定及獲取隱藏

原文:原文連結設定隱藏列:"columns": [ { "data": "name" }, { "data": "password" }, { defaultContent: '<td

gridview隱藏的幾種方法

如果要對gridview的某個列根據條件隱藏或者隱藏不必要的列 一、簡單方法: GridViewBrand為gridview控制元件,要對第3列進行現在,就可以在gridview資料繫結完成之後這樣寫:   if (...)            {             

獲取GridView的TemplateField模版中某

在GridView控制元件沒有加入模版的時候,可以很容易得到某行,某列的值. 如:    e.Row.Cells[3].Text  //就是要獲得當前選定行的第四個單元中的內容.我這裡是把這行程式碼放到了OnRowDataBound事件處理程式中的. 但要是對這列加入了Tem

GridVew 隱藏取不到

有時候我們可能需要讀出資料庫中的一些欄位,但是又不將這些欄位值顯示到前臺,這時候很多人就馬上想到將該欄位設定為隱藏(visuable=false) 不就解決了嗎。 不錯最終我們都是將其設定為 false,關鍵在於你什麼時候設定。 起初我在前臺編輯列中直接將 visuable

用jquery實現隱藏表表單的顯示關閉切換以及Ajax方式改動提交相應的那一行的改動內容。

turn jquery enter lag exit none button inpu ner 請勿盜版,轉載請加上出處http://blog.csdn.net/yanlintao1 請勿盜版,轉載請加上出處http://blog.csdn.net/yanli

CXGRID用法(取行、;定位選中某行等等)

定位 caption gdt true llc bind ado edt databind Delphi Cxgrid獲取選中行列,排序規則,當前正在編輯的單元格內的值 cxGrid1DBTableView1.Controller.FocusedRowIndex 當前行號

DevExpress中GridControl自定義匯總(有選擇性的匯總)

checked order sender end void calc custom expr total 今天碰到有同事遇到這個方面的需求,貼一下吧。 private void gvTop_CustomSummaryCalculate(object sender, Cust

隱藏了的過程

匯編指令 cnblogs str print 語句 define gcc ifdef 對照表 C語言經典,“Hello World”耳熟能詳,是每個人程序入門和開發環境測試的默認標準。 1 #include <studio.h> 2 3 int main()