2012-02-12 9 views
1

タイトルなどの情報が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.TextまたはHiddenField.Valueなど)を使用する必要があります。そのため、あなたがGridViewRowFindControl使用することができます。

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

関連する問題