2015-08-21 37 views
0

我的問題是我在頁面上使用了更新面板。有一個GridView,在這個數據綁定文本框的時候。我的問題是,如果我點擊選擇命令字段,我應該得到選定的行單元格值。但是現在,我只從選定行的指定單元格中獲取選定的索引no值。我只從選定的行獲得行索引。我需要進一步編碼的單元值。如果有人知道,請分享你的知識。我記得你我在頁面上使用過更新面板。我的需要是獲取選定的行值。我不關心哪個事件使用..沒有在更新面板中使用Gridview的單元格值

我的代碼如下:

<asp:GridView ID="GridView1" style="margin-left:130px;" runat="server" 
    AutoGenerateColumns="False" BackColor="#DEBA84" BorderColor="#DEBA84" 
    BorderStyle="None" BorderWidth="1px" 
    CellPadding="3" CellSpacing="2" DataKeyNames="MachID" 
    onselectedindexchanged="GridView1_SelectedIndexChanged" AllowPaging="True" 
    PageSize="2" onselectedindexchanging="GridView1_SelectedIndexChanging" 
    onrowdatabound="GridView1_RowDataBound" 
    onrowcommand="GridView1_RowCommand"> 
    <Columns> 
    <asp:TemplateField HeaderText="Punch No"> 
     <ItemTemplate> 
     Punch <%#Container.DataItemIndex+1 %> 
      </ItemTemplate> 
      <HeaderStyle HorizontalAlign="Left" /> 
      </asp:TemplateField> 
      <%-- <asp:TemplateField> 
       <ItemTemplate> 
       <asp:Label ID="Label2" runat="server" Text="Punch"></asp:Label> 
       </ItemTemplate> 
       </asp:TemplateField>--%> 
       <asp:BoundField DataField="MachID" Visible="False" /> 
       <asp:BoundField DataField="PunchTime" HeaderText="Punch Time" ReadOnly="True" /> 
       <asp:TemplateField Visible="False"> 
        <ItemTemplate> 
         <asp:Label ID="lblhidden" runat="server" Text='<%# Eval ("Punchtime") %>'></asp:Label> 
       </ItemTemplate> 
        </asp:TemplateField> 
        <asp:CommandField SelectText="Edit" ShowSelectButton="True" /> 
        <asp:TemplateField> 
        <ItemTemplate> 
          <asp:Button ID="btnEdit" runat="server" CommandName="edit" 
          onclick="btnEdit_Click" Text="Edit" /> 
        </ItemTemplate> 
         </asp:TemplateField> 
        </Columns> 
         <FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" /> 
         <HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" /> 
         <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" /> 
         <RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" /> 
         <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" /> 
         <SortedAscendingCellStyle BackColor="#FFF1D4" /> 
         <SortedAscendingHeaderStyle BackColor="#B95C30" /> 
         <SortedDescendingCellStyle BackColor="#F1E5CE" /> 
         <SortedDescendingHeaderStyle BackColor="#93451F" /> 
         </asp:GridView> 
      </td> 

我的代碼在這裏:

protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e) 
    { 

     //e.NewSelectedIndex 
     int i = e.NewSelectedIndex; 
     string data = GridView1.Rows[i].Cells[0].Text;  
     if (data != "") 
     { 

      txtpunchin.Text = data.ToString(); 
     } 
    } 
+0

你的第一個單元格似乎是一個模板字段。如果是這樣,你不能通過'Cells [0] .Text獲得價值;' – DarkKnight

回答

0

檢查這個....

buttonclick()// this must be ur edit button 
{ 
    Button btn= (Button)sender; 
    GridViewRow grv = (GridViewRow)btn.NamingContainer; 
    string name= grv.Cells[0].Text; 

// once update your updated panel if it wont trigger any value, just like 
    UpdatePanel1.Update(); 
} 
+0

我檢查汽車.did沒有看到行上的任何值..這就是原因。沒有價值name.name爲空 – Creator

+0

好吧你正在gridSelectedIndexChanging,現在它取決於你選擇哪一行,但其索引更改,而不是行選擇,如果你不選擇任何行,如何獲得行單元格值? –

+0

我使用的按鈕事件didi notget值..我試着用select索引改變一個改變的事件..在changind索引將得到,但可以採取行值與選定的iindex。 – Creator