2012-02-12 17 views
1

我有一个网格,只显示一条信息,如标题。其他字段是隐藏的。当您单击编辑时,模式弹出窗口会显示一个窗体并从网格中导入信息进行编辑。隐藏字段中的信息不会被导入。我不想在网格中显示所有信息,因为我只有标题的空间。网格中隐藏的字段不会导入到编辑表单

我该如何做这项工作?谢谢。 Risho

<asp:GridView ID="gvForum" runat="server" DataSourceID="odsForumApproval" DataKeyNames="id" Width="200px" 
RepeatColumns="1" DataKeyField="id" CssClass="gridview" 
AutoGenerateColumns="False" GridLines="None" OnSelectedIndexChanged="_OnCommand"> 
<AlternatingRowStyle CssClass="altbgcolor" /> 
<Columns>        
    <asp:BoundField DataField="title" /> 

    <asp:TemplateField > 
     <ItemTemplate> 
      <asp:HiddenField runat="server" ID="hfId" Value='<%# Eval("id") %>' /> 
     </ItemTemplate>         
    </asp:TemplateField> 

    <asp:TemplateField > 
     <ItemTemplate> 
      <asp:HiddenField runat="server" ID="hfDesc" Value='<%# Eval("description") %>' /> 
     </ItemTemplate>         
    </asp:TemplateField> 

    <asp:TemplateField > 
     <ItemTemplate> 
      <asp:LinkButton ID="lnkbtn" Text="Approve" runat="server" onclick="lnkbtn_Click"/> 
     </ItemTemplate>         
    </asp:TemplateField> 
</Columns> 

protected void lnkbtn_Click(object sender, EventArgs e) 
{ 

    LinkButton btndetails = sender as LinkButton; 

    GridViewRow gvrow = (GridViewRow)btndetails.NamingContainer; 

    lblID.Value = gvrow.Cells[1].Text; 

    txtTitle.Text = gvrow.Cells[0].Text; 

    lblMessage.Text = gvrow.Cells[3].Text; 

    this.ModalPopupExtender1.Show(); 

} 

回答

1

小区文本,如果您使用的是TemplateFields与嵌套控件是空的。您需要获得对控件的引用并使用其相应的属性(如TextBox.TextHiddenField.Value)。因此,你可以在GridViewRow使用FindControl

var hfId = (HiddenField)gvrow.FindControl("hfId"); 
var hfDesc = (HiddenField)gvrow.FindControl("hfDesc"); 
txtTitle.Text = gvrow.Cells[0].Text; 
lblID.Value = hfId.Value; 
txtTitle.Text = hfdesc.Value; 
+0

感谢蒂姆,我知道我可以依靠你! :) – Risho 2012-02-12 22:33:14

相关问题