2015-08-04 2 views
0

Я работаю с вложенным gridview asp.net, в котором мне нужно показать значения ячейки gridview в текстовом поле для редактирования.Отображать значения ячейки сетки в текстовом поле в asp.net

Моя проблема в том, что я не знаю, как отображать значения в текстовое поле, если я использовал оба поля шаблона & boundfield. Вот мой aspx.

<Columns> 
    <asp:TemplateField ItemStyle-Width="10px"> 
     <ItemTemplate> 
     <img alt = "" style="cursor: pointer" src="images/plus.png" /> 
     <asp:Panel ID="pnsections" runat="server" Style="display: none;"> 
     <asp:HiddenField ID="HdnId" runat="server" Value='<%# Eval("Dept_Name") %>' /> 
     <asp:GridView ID="gvsections" Width="100%" CssClass="table table-bordered table-hover" runat="server" AutoGenerateColumns="false" OnRowDataBound="gvsections_rowdatabound" OnRowEditing="gvsections_rowediting" DataKeyNames="Dept_Name"> 

     <Columns> 

     <asp:BoundField ItemStyle-Width="150px" DataField="currdept" HeaderText="Deptcurrent" /> 
     <asp:BoundField ItemStyle-Width="150px" DataField="Dept_Name" HeaderText="SectionName" /> 
     <asp:BoundField ItemStyle-Width="150px" DataField="FLDTYPE" HeaderText="Type" HeaderStyle-CssClass=" visible-lg visible-md" ItemStyle-CssClass=" visible-lg visible-md " /> 

     </Columns> 
    </asp:GridView> 
    </asp:Panel> 
    </ItemTemplate> 
</asp:TemplateField> 
<asp:BoundField ItemStyle-Width="150px" DataField="Dept_Name" HeaderText="Department" /> 
<asp:BoundField ItemStyle-Width="150px" DataField="FLDTYPE" HeaderText="Type" /> 

    </Columns> 
</asp:GridView> 
+0

deptname.Text = gvdepts.Rows [row.RowIndex] .Cells [1] .Text показывает пустое значение внутри DEPTNAME текстового поля. –

+0

его вложенное gridview, а родительский gridview - 'gvdepts', у меня есть текстовое поле с именем deptname. deptname.Text = gvdepts.Rows [row.RowIndex] .Cells [1] .Text, отображающий пустое значение внутри текстового поля deptname. –

+0

попытайтесь изменить ваше утверждение следующим образом ** deptname.Text = (gvdepts.Rows [row.RowIndex] .Cells [1] .Controls [0] в качестве метки) .Text ** –

ответ

0

если вы пишете код в selectedindexchanging события табличном затем попробовать это и он будет работать

GridViewRow row = gvdepts.Rows[e.NewSelectedIndex]; 
deptname.Text=row.Cells[1].Text; 

Я надеюсь, что это помогает

+0

показывает пустой, не работает. –

0

В коде-поля содержат dept name - HdnId (Hiddenfield), внутреннее поле привязки gridview (Dept_Name), внешнее связанное с сеткой поле (Dept_Name).

1. deptname.Text = (gvdepts.SelectedRow.Cells[1].FindControl("HdnId") as HiddenField).Value; 

2. deptname.Text = (gvdepts.SelectedRow.Cells[1].FindControl("gvsections") as GridView).Rows[0].Cells[2].Text; 

3. deptname.Text = gvdepts.SelectedRow.Cells[2].Text; 

может ссылку решить вашу проблему: http://www.aspforums.net/Threads/133072/Edit-Update-Delete-in-Nested-Child-GridView-in-ASPNet/

+0

в данном примере, кнопка ссылки используется для редактирования, но в моем случае я хочу редактировать без ссылок, используя выбранное свойство indexchanged gridview. Всякий раз, когда я нажимаю на строку, выбранное свойство indexchanged должно помогать отображать значения gridcell в соответствующем текстовом поле формы. Мне нужна помощь в этом .. спасибо заранее. –

+0

с помощью скрытого поля помог отобразить значение имени в текстовом поле, но из-за этого дочернее gridview исчезло. –

+0

Огонь onselectedindexchanged событие. И получите индекс строки как: row.Row Index == gridview.SelectedIndex и найдите нужное поле –