ASP.NET如何删除、编辑没有设置主键的数据?(GridView控件)
我的具体意思是,比如有个表未设置主键,表内有Name,Time,Age列,但是在表中有若干相同的数据(Name,Time,Age三列都相同)。以前如果设置了主键,就可以用...
我的具体意思是,比如有个表未设置主键,表内有Name,Time,Age列,但是在表中有若干相同的数据(Name,Time,Age三列都相同)。
以前如果设置了主键,就可以用string sqlstr="delete from [表名] where 主键名='" + GridView.DataKeys[e.RowIndex].Value.ToString() + "'";
但是现在没有主键,请教如何删除GridView中的某一行?同理又如何编辑某一行呢? 展开
以前如果设置了主键,就可以用string sqlstr="delete from [表名] where 主键名='" + GridView.DataKeys[e.RowIndex].Value.ToString() + "'";
但是现在没有主键,请教如何删除GridView中的某一行?同理又如何编辑某一行呢? 展开
展开全部
lz 要先把gridview 转化成模板 在每一行加入个linkbutton 或者button 来触发。
<asp:TemplateField HeaderText="link" ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="false"
CommandName="button" Text="Button" CommandArgument='<%# Container.DataItemIndex %>'
onclick="LinkButton1_Click"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
在Gridview_RowCommand 或者 RowDataBound
Convert.ToInt32(e.CommandArgument); 就能获取行号。
而编辑、更新、取消是要加入事件在完善的
GridView1_RowUpdating
int i = e.RowIndex;
string cname = ((Label)GridView1.Rows[i].Cells[3].FindControl("Label2")).Text;
……
GridView1.EditIndex = -1;
gridbind();
protectedvoid GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
gridbind();
}
protectedvoid GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
Session["editx"] = e.NewEditIndex;
gridbind();
}
<asp:TemplateField HeaderText="link" ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="false"
CommandName="button" Text="Button" CommandArgument='<%# Container.DataItemIndex %>'
onclick="LinkButton1_Click"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
在Gridview_RowCommand 或者 RowDataBound
Convert.ToInt32(e.CommandArgument); 就能获取行号。
而编辑、更新、取消是要加入事件在完善的
GridView1_RowUpdating
int i = e.RowIndex;
string cname = ((Label)GridView1.Rows[i].Cells[3].FindControl("Label2")).Text;
……
GridView1.EditIndex = -1;
gridbind();
protectedvoid GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
gridbind();
}
protectedvoid GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
Session["editx"] = e.NewEditIndex;
gridbind();
}
展开全部
没有主键的话就要用组合键,比如name和age能确定唯一的一个,如果是多项的话是没有办法精确到某一行的!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
解决方法如下:
1.设计阶段设置模板列。
2.在模板列中增加按钮。
3.为按钮编写实现代码(在command事件中)。
1.设计阶段设置模板列。
2.在模板列中增加按钮。
3.为按钮编写实现代码(在command事件中)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询