gridView绑定好了数据··
如:学生编号,姓名,年龄,性别
1 LILY 25 女 编辑
2 LACY 20 女 编辑
3 COCO 20 女 编辑
···· 这里的编辑列为Visual Studio自带的怎样变成如下效果:
如:学生编号,姓名,年龄,性别
1 LILY 25 女
2 LACY 20 女
3 COCO 20 女
····
n YOU 20 女 编辑 就是只把最后一列的那个 编辑 显示出来怎样实现????如果把ShowEditButton设置为True的话,就会都显示,False则都不会显示了。
很需要这种效果,谢谢帮忙··不管什么方法都可以
如:学生编号,姓名,年龄,性别
1 LILY 25 女 编辑
2 LACY 20 女 编辑
3 COCO 20 女 编辑
···· 这里的编辑列为Visual Studio自带的怎样变成如下效果:
如:学生编号,姓名,年龄,性别
1 LILY 25 女
2 LACY 20 女
3 COCO 20 女
····
n YOU 20 女 编辑 就是只把最后一列的那个 编辑 显示出来怎样实现????如果把ShowEditButton设置为True的话,就会都显示,False则都不会显示了。
很需要这种效果,谢谢帮忙··不管什么方法都可以
<asp:CommandField HeaderText="编辑" ShowEditButton="True">
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:CommandField >
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
BindGridView();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
role.ID =int.Parse( GridView1.DataKeys[e.RowIndex].Value.ToString());
role.Name = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim();
role.Decription = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim();
role.Update();
BindGridView();
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
BindGridView();
}
if(e.Row.RowType = DataControlRowType.Footer){
e.Row.Cells(最后一列的索引号).Text = "编辑";//索引号从零开始
}
你觉得怎么样呢.可以的话给分.谢谢合作.
谢谢··
<asp:GridView ID="GridView1" ...>
<Columns>
<asp:BoundField DataField="CategoryID" HeaderText="CategoryID" ReadOnly="true"/>
<asp:BoundField DataField="CategoryName" HeaderText="CategoryName"/>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="btnEdit" runat="server" Text="编辑" CommandName="Edit" Visible='<%# ((GridViewRow)Container).RowIndex == yourDataTable.Rows.Count - 1 %>'/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
不是最后一行就隐藏啊
rowcreate
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="CategoryID" >
<Columns>
<asp:BoundField DataField="CategoryID" HeaderText="CategoryID" ReadOnly="true"/>
<asp:BoundField DataField="CategoryName" HeaderText="CategoryName"/>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="btnEdit" runat="server" Text="编辑" CommandName="Edit" Visible='<%# ((GridViewRow)Container).RowIndex == dt.Rows.Count - 1 %>'/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>protected DataTable dt;private DataTable BindGrid()
{
SqlConnection cn = new SqlConnection(@"server=.\SQLExpress;uid=sa;pwd=;database=Northwind");
string strSQL = "select CategoryID,CategoryName from Categories";
SqlDataAdapter da = new SqlDataAdapter(strSQL, cn);
dt = new DataTable();
cn.Open();
da.Fill(dt);
cn.Close();
return dt;
}private void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
GridView1.DataSource = BindGrid();
GridView1.DataBind();
}
}
<Columns>
<asp:BoundField DataField="CategoryID" HeaderText="CategoryID" ReadOnly="true"/>
<asp:BoundField DataField="CategoryName" HeaderText="CategoryName"/>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="btnEdit" runat="server" Text="编辑" CommandName="Edit" Visible='<%# ((GridViewRow)Container).RowIndex == dt.Rows.Count - 1 %>'/>
</ItemTemplate>
<EditItemTemplate>
<asp:Button ID="btnUpdate" runat="server" Text="更新" CommandName="Update" />
<asp:Button ID="btnCancel" runat="server" Text="取消" CommandName="Cancel" />
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>public partial class _Default : System.Web.UI.Page
{
protected DataTable dt; private void BindGrid()
{
SqlConnection cn = new SqlConnection(@"server=.\SQLExpress;uid=sa;pwd=;database=Northwind");
string strSQL = "select CategoryID,CategoryName from Categories";
SqlDataAdapter da = new SqlDataAdapter(strSQL, cn);
dt = new DataTable();
cn.Open();
da.Fill(dt);
cn.Close();
GridView1.DataSource = dt;
GridView1.DataBind();
} private void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
BindGrid();
}
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
BindGrid();
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
BindGrid();
}
}
恩,基本上可以实现了,就是那个跟新和取消的显示想和 VS自带的一样。
我想这个我自己应该可以解决了。
if(e.Row.RowType = DataControlRowType.Footer){
e.Row.Cells(最后一列的索引号).Text = "<a href="编辑页面.aspx?id="+e.CommandArgument.ToString()+">编辑</a>";//索引号从零开始
}