ASP.NET GridView CommandField 更新/取消不换行

Posted

技术标签:

【中文标题】ASP.NET GridView CommandField 更新/取消不换行【英文标题】:ASP.NET GridView CommandField Update/Cancel does not wrap 【发布时间】:2010-09-16 08:14:36 【问题描述】:

我的问题是关于 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="Link" 更改为 ButtonType="Button",我如下图所示正确渲染。

alt text http://i38.tinypic.com/2pqopxi.jpg

我已经尝试过谷歌,也许我没有在正确的标签上搜索,但我之前看不到这个标签。

【问题讨论】:

【参考方案1】:

如果您使用模板字段,您可以完全控制页面的外观,但它要求您使用 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.
 

【讨论】:

【参考方案2】:

不要使用命令字段,使用TemplateField 并将命令按钮放在其中,并在其前面添加一个换行符 (br)。

【讨论】:

感谢科比的回复。但是,它似乎对我不起作用。 1- 我找不到仅绑定到 CommandField 中的更新按钮的方法 2- 您不能将 CommandField 放在 ItemTemplate 或 EditItemTemplate 中。我还担心的是为什么这适用于按钮而不是链接!错误?

以上是关于ASP.NET GridView CommandField 更新/取消不换行的主要内容,如果未能解决你的问题,请参考以下文章

Asp.net中GridView使用详解(引)

asp.net Gridview 的用法

asp.net 2.0中GridView控件的怪怪问题

Gridview 分页 ASP.NET 与 Gridview 外部的分页器面板

asp.net的gridview控件问题

c# asp.net GridView中如何删除一条记录后刷新页面