请问dataGrid中点击“修改”后,如何得到要修改的行的记录值?(急)
请问dataGrid中点击“修改”后,如何得到要修改的行的记录值?另外将该行变为其它颜色。
如下是我的部分代码:
.aspx
//////
<asp:datagrid id="gridAvatarList" runat="server" Width="100%" AutoGenerateColumns="False">
<Columns>
<asp:BoundColumn DataField="AvatarTypeID" HeaderText="编号"></asp:BoundColumn>
<asp:BoundColumn DataField="AvatarTypeName" HeaderText="物品名称"></asp:BoundColumn>
<asp:BoundColumn DataField="AvatarKindID" HeaderText="所属类别"></asp:BoundColumn>
<asp:templatecolumn headertext="修改">
<itemtemplate>
<asp:Button ID="btnEdit" Runat="server" Text="修改" CommandName="edit"></asp:Button>
</itemtemplate>
</asp:templatecolumn>
<asp:templatecolumn headertext="删除">
<itemtemplate>
<asp:Button ID="btnDel" Runat="server" Text="删除" CommandName="del"></asp:Button>
</itemtemplate>
</asp:templatecolumn>
</Columns>
</asp:datagrid>
.aspx.cs
////
private void btnSave_Click(object sender, System.EventArgs e)
{
Avatar avatar = new Avatar();
if(isEdit) //修改
{
//调用修改方法
isEdit = false;
}
else //添加
{
avatar.Add(txtAvatarTypeName.Text.Trim(), 1);
currentPage = 1;
BindPagedData();
}
}
private void gridAvatarList_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.CommandName == "edit")
{
/*
TextBox editRecord = (TextBox)e.Item.FindControl("AvatarTypeName");
if(editRecord != null)
txtAvatarTypeName.Text = editRecord.Text;
*/
txtAvatarTypeName.Text = e.Item.Cells[1].Text;
isEdit = true;
}
}
e.Item.Cells[1].Text 列名不能用FieldName来得到吗?用序号是不是有些不大合适?如果表中字段的顺序发生了变化,不就乱了吗?
还有,如何修改点击了的行的颜色呢?已表示现在正在修改
请指教!!!!!!!
问题点数:0、回复次数:6Top
1 楼hchxxzx(NET?摸到一点门槛)回复于 2005-06-02 14:00:38 得分 0
请问dataGrid中点击“修改”后,如何得到要修改的行的记录值?另外将该行变为其它颜色。
----------
<asp:Button ID="btnEdit" Runat="server" Text="修改" CommandName="edit">
<asp:Button ID="btnDel" Runat="server" Text="删除" CommandName="del">
你上述两句代码,写的都有问题,主要是CommandName
第一个要写成这样:
CommandName="Edit"
第二个
CommandName = "Delete"
要注意大小写
再仔细看了你的代码,错误太多,没有办法修改了.你到如下地址看一个完整的示例,仔细看如何调用.
http://community.csdn.net/Expert/topic/4016/4016964.xml?temp=.8130915Top
2 楼fivehun2005(弱弱)回复于 2005-06-02 14:35:39 得分 0
错误太多?不会吧?显示都很正常呀。
Top
3 楼luby(轻疯[在岁月无声的消逝里,轻轻的...我疯了。])回复于 2005-06-02 15:15:54 得分 0
在DATAGRID中加入 DataKeyField="编号" (就是指定主键)
在后台用this.DataGrid1.DataKeys[e.Item.ItemIndex]就可以得到"编号"
颜色问题用属性生成器就可以解决,你打开看看就知道了,因为很简单。Top
4 楼fivehun2005(弱弱)回复于 2005-06-03 11:33:56 得分 0
对了,楼上的这位兄弟,请问如何在dbgrid中是示一个到数的数据列?
比如:
序号 名称 内容
5 aa bb
4 cc dd
3 dd ff
2 dd hh
1 ff ffTop
5 楼hchxxzx(NET?摸到一点门槛)回复于 2005-06-03 13:02:16 得分 0
在SQL中进行排序
select * from table where xx=xx order by sno
重点是后面的order by 字段名Top
6 楼wangxinghai(我本轻狂)回复于 2005-06-03 13:11:24 得分 0
e.item.itemindex可以得到编辑的行号了.Top




