2012-02-27 47 views
0

我有一個gridview,它有一個列表推銷員名稱。當在Grid中使用A ButtonFieldTemplate選擇了推銷員時。我需要所選推銷員的姓名出現在Label獲取ASP.net中的Gridview中列的值/文本C#顯示在標籤中

到目前爲止,我有這一點,但它不工作:

protected void gvSalesmanByManager_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    lblSalesmanCustomers.Text = gvSalesmanByManager.SelectedValue + "'s Customers"; 
} 

它不扔任何錯誤。在Visual Studio中甚至沒有紅色的波浪線。這只是簡單的不工作。

如何在ASP.net和C#4.0中完成此操作。

+2

我們能看到你至今與事件和一切的代碼? – Ben

+0

到目前爲止我的代碼:保護無效gvSalesmanByManager_SelectedIndexChanged(對象發件人,EventArgs的) { lblSalesmanCustomers.Text = gvSalesmanByManager.SelectedValue + 「的顧客」; } –

回答

2

關於documentation SelectedValue獲取GridView控件中所選行的數據鍵值。你的GridView是否包含帶有鍵的列,並設置了dataKeyNamesProperty(如datakeynames =「myID」)?

編輯: 要訪問的列的值,你可以使用SelectedRow:

GridViewRow row = GridView1.SelectedRow; 
lblSalesmanCustomers.Text = row.Cells[2].Text; 

EDIT2: 有兩種選擇,當你想讀的模板字段。您可以將您的值存儲在其他不可見的列中,也可以訪問模板字段中的控件。像這樣的東西應該工作:

lblSalesmanCustomers.Text = ((TextBox)row.Cells[2].FindContol("tbxName")).Text; 
+0

它確實包含密鑰,我設置了DataKey名稱。然而,我不是想要獲得鑰匙/ ID,我實際上是想爲銷售員的姓名獲得2列。除非我需要首先獲得密鑰,並從2列中獲取文本? –

+0

使用selectetRow就像在我更新的示例中訪問其他值 – slfan

+0

好的。謝謝。這讓我更加接近。現在我可以獲得某列中特定單元格的值。它適用於第一個單元格,第二個單元格,第三個單元格,但當然當我嘗試第三個單元格(推銷員的名字)時,它會失敗。它什麼都沒顯示。該特定單元格是一個模板字段:鏈接按鈕。它還在存儲過程中連接了人名和姓氏。這些事情會導致問題嗎?我在想,因爲它是一個模板字段:LinkBut​​ton,它不想工作。儘管我接近了。 –

2

確保您沒有分配頁面加載事件的空文本。 或者您需要將這些初始化中,如果阻止

+0

好的。你的評論幫助了一點點。我在PageLoad事件中。所以我將它移到了我點擊的網格的SelectedIndex changed事件。現在我拿到標籤來閱讀「14位顧客」。當它應該說「弗蘭克的顧客」顯然它是從數據網格中獲得IndividualID/Key。我如何從2列中獲取文本?這些傢伙真正的名字出現在標籤中? –

+0

當前數據密鑰名稱是:IndividualID。該密鑰使用該IndividualID創建屬於該推銷員的客戶數據網格。但是,當點擊Goid時,我還需要讓該推銷員的姓名出現在標籤中。 –

0

到目前爲止我的代碼(Page.IsPostback!):保護無效gvSalesmanByManager_SelectedIndexChanged(對象發件人,EventArgs的){lblSalesmanCustomers.Text = gvSalesmanByManager.SelectedValue +「的客戶」 ; } -

嘗試在事件 「gvSalesmanByManager_SelectedIndexChanged」 以下代碼:

lblSalesmanCustomers.Text = gvSalesmanByManager.SelectedRow.Cells [0]。文本;

你說了一些關於「ButtonFieldTemplate」的內容,請向我展示一些來自你的ascx文件的代碼,這將對我們很有幫助。

*編輯: 「控件[1]」並不是正確的。但0是一個文字。你也可以調試你的代碼並設置斷點。會容易得多。 用Linkbutton試試這個: LinkBut​​ton lnk1 = gvSalesmanByManager.SelectedRow.Cells [0] .Controls [1] as LinkBut​​ton; lblSalesmanCustomers.Text = lnk1.Text;

最好的問候, 沒有人

+0

上面的slfan的註釋正在工作,但是我無法獲得buttonfield的文本出現在標籤中。只有一個BoundField。這是我的Aspx頁面代碼:

相關問題