2012-02-12 15 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

相關問題