获取datagridview 选定行某列值

vinson985 2008-10-13 10:23:06
如题
...全文
1547 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
onlinepay 2008-10-13
  • 打赏
  • 举报
回复
看论坛里很多人都在问如果获取GridView当行的问题,
当然解决这个问题有好几个方法:
1 加RowCommand事件中,判断请求的发出按钮控件名,根据传递的参数来获取当前行中我们需要的参数。
2 GridView设置datakeynames方式。
……
以上方法实现不再累赘。
今天给大家介绍一种最方便,也最满足日常思维的好办法:
采用控件事件的sender的Parent来获取cell对象,再取cell的上级对象,也就是row对象了。简单吧!
示例如下:
在第三列中放了一个模板列,放入了一个CheckBox,想法是在选中时,设置第四列Lable状态标识为“T”,取消选中时,第四列Lable状态标识清空

CheckBox直接在模板列中双击,加入以下代码即可。
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
CheckBox chk = (CheckBox) sender;
DataControlFieldCell dcf = (DataControlFieldCell)chk.Parent;
GridViewRow gvr = (GridViewRow)dcf.Parent;
if (chk.Checked)
{
Label lab = (Label)gvr.Cells[3].FindControl("Label1");
lab.Text = "T";
}
else
{
Label lab = (Label)gvr.Cells[3].FindControl("Label1");
lab.Text = "";
}
}




GridView中模板列的 Button 和 DropDownList 的使用

<asp:TemplateField HeaderText="申请状态" SortExpression="Status">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Status") %>'></asp:TextBox>
</EditItemTemplate>
<ItemStyle HorizontalAlign="Center" />
<ItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" SelectedValue='<%# Bind("Status") %>'>
<asp:ListItem Selected="True">已提交申请</asp:ListItem>
<asp:ListItem>已批准申请</asp:ListItem>
<asp:ListItem>已划账</asp:ListItem>
<asp:ListItem>未划账</asp:ListItem>
<asp:ListItem>已撤销申请</asp:ListItem>
</asp:DropDownList>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="修改状态" />
</ItemTemplate>
</asp:TemplateField>


protected void Button1_Click(object sender, EventArgs e)
{
Button bt= (Button )sender ;
GridViewRow gvr=(GridViewRow )bt.Parent.Parent ;
int i =gvr .RowIndex ;
DropDownList dd = (DropDownList)GridView1.Rows[i].FindControl("DropDownList1");
i=Convert.ToInt32(GridView1.Rows[i].Cells [0].Text );
string tsql = "Update MyGift Set Status='"+ dd.SelectedValue +"' where id="+ i;
DB.Ctrl(tsql);
Response.Write("<script>alert('成功修改');location.href='MyGift.aspx';</script>");

}


http://www.hzjj8.cn
gouhan02 2008-10-13
  • 打赏
  • 举报
回复
1楼2楼正解
vinson985 2008-10-13
  • 打赏
  • 举报
回复
是在datagridview上选定的某行

理论是他判断我选择了哪行然后才有 [行] [列]的indent吧??

zbking 2008-10-13
  • 打赏
  • 举报
回复
Gridview.Rows[行].cell[列].Value
wuyq11 2008-10-13
  • 打赏
  • 举报
回复
Gridview.Rows[行].cell[列].Text
固执的大叔 2008-10-13
  • 打赏
  • 举报
回复
TextBox1.Text = dgvList.Rows(dgvList.CurrentRow.Index).Cells(2).Value.ToString
eastkiki 2008-10-13
  • 打赏
  • 举报
回复
Private Sub dgvCheck_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles dgvCheck.Click
Dim ss As String
ss = dgvCheck.SelectedCells.Item(0).Value
End Sub
onlinepay 2008-10-13
  • 打赏
  • 举报
回复

16,718

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧