ASP.NET GridView CommandField Update / Cancelはラップしません
-
06-07-2019 - |
質問
私の質問は、ASP.NET GridViewコントロールに関するものです。以下に示すように、ColumnsタグでCommandFieldを使用しています。
<asp:CommandField ShowEditButton="True" HeaderStyle-Width="40px" UpdateText="Save" ButtonType="Link" HeaderStyle-Wrap="true" ItemStyle-Wrap="true" ItemStyle-Width="40px"/>
レンダリングされるのは、次の画像に示すとおりです([編集]ボタンをクリックした後)。
ご覧のように、 [キャンセル]リンクに新しい行を表示しようとしていますが、どうすればよいでしょうか。 ButtonType =&quot; Link&quot;を変更した場合
から ButtonType =&quot; Button&quot;
に変更すると、次のように正しくレンダリングされます。
代替テキストhttp://i38.tinypic.com/2pqopxi.jpg
すでにGoogleを試しましたが、適切なタグを検索していないのかもしれませんが、以前に対処したタグが表示されませんでした。
解決
テンプレートフィールドを使用すると、ページの外観を完全に制御できますが、CommandNameプロパティと可能性のあるCommandArgumentプロパティを使用し、GridViewのOnRowCommandも使用する必要があります。
aspxページ:
<asp:GridView id="gvGrid" runat="server" OnRowCommand="gvGrid_Command">
<Columns>
<asp:TemplateField>
<ItemTemplate>
Some Stuff random content
<br />
<asp:LinkButton id="lbDoIt" runat="server" CommandName="Cancel" CommandArgument="SomeIdentifierIfNecessary" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
背後のコード:
protected void gvGrid_Command(object sender, GridViewCommandEventArgs e)
{
if(e.CommandName=="Cancel")
{
// Do your cancel stuff here.
}
}
他のヒント
コマンドフィールドを使用しないで、 TemplateField にコマンドボタンを配置し、必要に応じてその前に改行(br)を付けます。
所属していません StackOverflow