2012-04-16 26 views
0

我有一點困惑,我不知道如何解決這個問題。如果我編輯的GridView,我讀的行這樣如何在編輯文本框的同時閱讀gridview單元格?

cmd.Parameters.Add("@X", SqlDbType.Char).Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[15].Controls[0]).Text; 
cmd.Parameters.Add("@Y", SqlDbType.Char).Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[15].Controls[0]).Text; 

當GridView控件處於編輯模式,兩個單元X和Y文本框,因爲這是默認的編輯模式。我手動創建了列,我希望單元格X是「只讀」。如何更改代碼以便我可以在沒有文本框的情況下閱讀單元格X?幫助將不勝感激。謝謝!

+0

您的問題沒有意義。你能澄清你對X和Y的意圖嗎?編輯模式與任何事情有什麼關係? – 2012-04-16 16:23:47

+0

是的,我有點努力去理解這個問題。如果你只是使用了GridView.FindControl(「lblMyLabel」),它將簡化你對文本框的請求。如果你這樣做,你甚至不需要查找文本框,只需在ViewMode中搜索標籤,而不是編輯模式中的文本框 – 2012-04-16 16:26:51

+0

是的mikey正是我想要做的。我怎麼能爲gridview創建這樣一個標籤? – javasocute 2012-04-16 16:29:05

回答

2

這可能是有點過於簡單,但如何:

var lblHolder = (Label) GridView1.FindControl("lblMyLabel") 
    cmd.Parameters.Add("@X", SqlDbType.Char).Value = lblHolder.Text 

只要搜索您的標籤(或任何持有你的值)直接

那麼你的網格視圖可以是這個樣子

    <asp:GridView ID="gvData" runat="server"       AutoGenerateColumns="false" Width="95%" Font-Names="Verdana"> 
        <RowStyle Height="40px" /> 
        <Columns> 
         <asp:TemplateField HeaderText="Col1"> 
          <ItemTemplate> 
           <asp:Label ID="lblMyLabel" runat="server" 
            Text='<%# eval("MyDataBaseField")%>' /> 
            </ItemTemplate> 
         </asp:TemplateField> 
        </Columns> 
       </asp:GridView> 

然後你只需要連接一個數據源到網格。當然還有其他一些方法可以做到這一點,但是通過它們的Id來搜索控件要比試圖找出它們在數組中的數量要容易得多

+0

所以我不得不將這個列轉換成一個templatefield並且基本上添加一個標籤? – javasocute 2012-04-16 16:33:15

+0

標籤只是一種存儲數據的方式,當它處於查看模式時,您可以使用任何您想要的控件。然後搜索它,並抓住它的價值 – 2012-04-16 16:38:11

+0

真棒。非常感謝你,先生。 – javasocute 2012-04-16 16:41:17

相關問題