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 更新/取消不换行的主要内容,如果未能解决你的问题,请参考以下文章