你好,对于你的“如何获取Gridview中编辑字段的值?”这个问题我有个类似的问题寻求下帮助

请问,“stringd_name=((TextBox)DepartmentGridView.Rows[e.RowIndex].FindControl("txtD_Name... 请问,“string d_name = ((TextBox)DepartmentGridView.Rows[e.RowIndex].FindControl("txtD_Name")).Text;”这句中,文本框的ID值在哪里啊,我的GridView中修改文本框没有ID这个属性,从哪里命名呢?谢谢帮忙啊,呵呵 展开
 我来答
zhubin_wyn
2011-10-25 · TA获得超过175个赞
知道小有建树答主
回答量:216
采纳率:100%
帮助的人:261万
展开全部
你的这个Id是指主键吗?
如果是主键,你可以到GridView里面去设定成如:
DataKeyNames="id"
<asp:GridView ID="gdvUserInfo" runat="server" AutoGenerateColumns="False" DataKeyNames="id">

获取的时候:
/// <summary>
/// 删除信息事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void gdvUserInfo_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string id =gdvUserInfo.DataKeys[e.RowIndex].Value.ToString();
if (info.DeleteUserInfoById(id) > 0)
{
this.lblMessage.Text = "删除成功!";
LoadInfo();
}
else
{
this.lblMessage.Text = "删除失败!";
LoadInfo();
}
}

/// <summary>
/// 编辑事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void gdvUserInfo_RowEditing(object sender, GridViewEditEventArgs e)
{
gdvUserInfo.EditIndex = e.NewEditIndex;
LoadInfo();
}

/// <summary>
/// 取消编辑事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void gdvUserInfo_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gdvUserInfo.EditIndex = -1;
LoadInfo();
}

/// <summary>
/// 更新事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void gdvUserInfo_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string userId = gdvUserInfo.DataKeys[e.RowIndex].Value.ToString();
TextBox txtUserId = (TextBox)gdvUserInfo.Rows[e.RowIndex].Cells[0].FindControl("txtUserId");
TextBox txtUserName = (TextBox)gdvUserInfo.Rows[e.RowIndex].Cells[0].FindControl("txtUserName");
TextBox txtPassWord = (TextBox)gdvUserInfo.Rows[e.RowIndex].Cells[0].FindControl("txtPassWord");
if (txtUserName != null && txtPassWord != null)
{
try
{
UserInfo user = info.GetUserInfoById(userId);
user.UserName = txtUserName.Text.ToString();
user.Password = txtPassWord.Text.ToString();
if (info.ModifyUserInfo(user) > 0)
{
this.lblMessage.Text = "修改成功!";
gdvUserInfo.EditIndex = -1;
LoadInfo();
}
else
{
this.lblMessage.Text = "修改失败!";
gdvUserInfo.EditIndex = -1;
LoadInfo();
}
}
catch (Exception)
{

this.lblMessage.Text = "修改失败!";
gdvUserInfo.EditIndex = -1;
LoadInfo();
}
}
}

/// <summary>
///
/// 光棒事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void gdvUserInfo_RowDataBound(object sender, GridViewRowEventArgs e)
{
for (int i = 0; i < gdvUserInfo.Rows.Count; i++)
{
if (gdvUserInfo.Rows[i].RowType == DataControlRowType.DataRow)
{
gdvUserInfo.Rows[i].Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#9cf'");
gdvUserInfo.Rows[i].Attributes.Add("onmouseout", "this.style.backgroundColor=c");
}
}
}
更多追问追答
追问
请问这个cs页面需要添加什么using 程序集吗?“UserInfo user = info.GetUserInfoById(userId);”中的“UserInfo” 和 “info.”是什么,页面不识别
追答
这个是一个实体类,你可以根据你的情况做一些修改
userId是主键
UserInfo user = info.GetUserInfoById(userId);// 获取原来对象
//给当前对象重新复制
user.UserName = txtUserName.Text.ToString();
user.Password = txtPassWord.Text.ToString();
//执行修改动作:
info是业务逻辑层的一个实例 UserInfoManager info=new UserInfoManager();
if (info.ModifyUserInfo(user) > 0)
{
this.lblMessage.Text = "修改成功!";
gdvUserInfo.EditIndex = -1;
LoadInfo();
}
else
{
this.lblMessage.Text = "修改失败!";
gdvUserInfo.EditIndex = -1;
LoadInfo();
}
百度网友ea1c09c
2011-10-25 · TA获得超过1004个赞
知道小有建树答主
回答量:856
采纳率:0%
帮助的人:1308万
展开全部
你的GridView中的修改文本框是个TextBox吧?你检查直接在前台为他加上ID= "txtD_Name" 就行了,例如 <asp:TextBox id="txtD_Name" runat="server" />
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式