我正在尝试将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>
答案 0 :(得分:1)
设置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>
答案 1 :(得分:0)
只需使用ButtonField
替换当前的“最后”列,例如:
<asp:ButtonField ButtonType="button" CommandName="MoreDetail"
HeaderText="More Details" Text="More Details" />
答案 2 :(得分:0)