asp .net datagrid 编辑 取值

来源:百度知道 编辑:UC知道 时间:2024/05/22 19:57:55
在DATAGRID中点了编辑按钮后,会把所有字段变成文本框,然后点更新就执行了方法,进行UPDATE
这个时候,就是要把用户新填写的东西写入数据库,那么,取得用户输入的数据是关键,这里我用到了一个方法,如下
TextBox tb=(TextBox)(e.Item.Cells[1].Controls[0]);
string id=tb.Text.Trim();
这里我得到了该字段用户输入的值,但是老大有需求,说必须用STRING KEY的方式获得,也就是说e.Item.Cells[数字].Controls[数字]这个方法不可取
请达人帮忙,感激不尽
老大有提示,类似如此
LinkButton l=(LinkButton)e.Item.Cells[9].FindControl("控件ID");
但是这个搜寻控件ID的方法,我无法知道那几个TEXTBOX的ID,就是点了"编辑"后,自动产生的那几个TEXTBOX的ID.

下面几个方法不能用,取值是可以取,但是不要通过索引,需要通过列名
int index = Int32.Parse(e.CommandArgument.ToString());
string bookid = grdProgram.Rows[index].Cells[0].Text;

((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim()
这个是公司规定用2003做,没办法,谁不想用更高级的版本呢.
是第二次改了.之前的答案都不对,今天被老大催命的催了.汗

你完全没必要使用datagrid 因为gridView完全可以代替datagrid 而且功能更丰富

。。。。
第2次了吧、

我觉得还是点击当前行把当前行所有的东西放在相应的文本框中来进行修改最好,删找时利用复选框进行得到id删除,这样比较美观些
1.在datagrid第一列加一个模板进行全选或挑选,进行删除用
代码:
/点击DataGrid上的复选框,让它全选/
protected void DataGrid_myline_ItemCreated(object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Header)
{
CheckBox chk = (CheckBox)e.Item.FindControl("cbxCount");
chk.CheckedChanged += new EventHandler(chk_CheckedChanged);
}
}
2.拉一个删除按钮在页面上.
protected void Butdel_Click(object sender, EventArgs e)
{
string strSql = "";
CheckBox cbx;
foreach (DataGridItem item in DataGrid_Invalid.Items)
{
cbx = (CheckBox)item.FindControl("cbxNews");
if (cbx.Checked == true)
{
strSql += DataGrid_Invalid.DataKeys[item.ItemIndex].ToString() + ",";//索取主键
}
}
if (strSql.Length > 0)
{