[英]How to make gridview last column Button
我正在尝试使gridview的最后一栏字段为Button。
尝试但无法执行此操作。
使用SQL数据源在gridview中添加列时,这是可能的。 但是要使用这种绑定方法来做到这一点。
这是我的代码-
private void BindUserRoles()
{
gvUserRoles.DataSource = UserRoles.GetAllRoles();
gvUserRoles.DataBind();
}
public List<UserRoles> GetAllRoles()
{
try
{
List<UserRoles> userRoles = new List<UserRoles>();
using (IDataAccess dataAccess = Mspl.MobileTracking.DataAccess.DataAccess.GetDataAccess("TrackingConnectionString"))
{
var dataReader = dataAccess.RetrieveData("GetAllRoles", null);
while (dataReader.Read())
{
UserRoles roles = new UserRoles();
roles.RoleId = dataReader["RoleId"].ToString();
roles.RoleName = dataReader["RoleName"].ToString();
userRoles.Add(roles);
}
}
return userRoles;
}
catch (Exception ex)
{
return null;
}
}
<asp:GridView ID="gvUserRoles" runat="server" EnableModelValidation="True"
</asp:GridView>
设置AutoGeneratedColumn=false
并添加如下所示的模板AutoGeneratedColumn=false
。
像这样更改您的网格代码-
<Columns>
<asp:BoundField DataField="RoleId" HeaderText="RoleId" ItemStyle-CssClass="HideColumn" HeaderStyle-HorizontalAlign="Left"/>
<asp:TemplateField HeaderText="Role Name" HeaderStyle-CssClass="normalText">
<ItemTemplate>
<asp:Label ID="lblRoleName" CssClass="normalText" runat="server" Text='<%# Bind("RoleName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="btnEditRole" runat="server" Text="Edit" OnClick="EditRoles_Click"></asp:Button>
</ItemTemplate>
</asp:TemplateField>
</Columns>
只需将您当前的“最后一个”列替换为ButtonField
,例如:
<asp:ButtonField ButtonType="button" CommandName="MoreDetail"
HeaderText="More Details" Text="More Details" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.