C# datagridview 怎么让某个单元格得到焦点?设置什么属性,或执行什么方法?

C# datagridview 怎么让某个单元格得到焦点?设置什么属性,或执行什么方法?,第1张

由于datagridview里没有focus()事件,所以要想使datagrieview单元格自动获取焦点,首先要使该单元格成为currentcell,接着让BeginEdit(true),这样datagridview上的单元格就会像textbox等一样自动获取焦点。如:MessageBox.Show("“数量”不能为0或空!","提示",MssageBoxButtons.OK,MessageBoxIcon.Information)

this.dgvOut.CurrentCell=dgvOut[2,i]//设置当前单元格

dgvOut.BeginEdit(true)//设置可编辑状态

return//由于该例子是用在for循环内部来检测,所以设置了返回

前台:

步骤1:添加JavaScript脚本,用以在TextBox控件获得焦点时,触发后台GridView的RowCommand事件。

代码如下:

<script language="javascript" type="text/javascript">

function test(x)

{

var btn = x + "Button"

document.all(btn).click()

}

</script>

步骤2:修改你的GridView。

注意:

1.TextBox添加了onfocus="test(this.id)"

2.添加了一个隐藏的按钮

详细见下代码:

<asp:GridView ID="gv_StockInfo" runat="server" AllowPaging="True">

<Columns>

<asp:BoundField DataField="ID" HeaderText="ID" />

<asp:BoundField DataField="商品编码" HeaderText="商品编码" />

<asp:BoundField DataField="商品名称" HeaderText="商品名称" />

<asp:TemplateField HeaderText="实到数量">

<ItemTemplate>

<asp:TextBox ID="txt_quantity" runat="server" AutoPostBack="True" CausesValidation="True" Width="50px" Text='<%# Eval("实到数量") %>' onfocus="test(this.id)"></asp:TextBox>

<!--添加一个隐藏的按钮,CommandArgument存储当前GridView控件的行号-->

<asp:Button ID="txt_quantityButton" runat="server" Text="" CommandArgument= '<%#(Container as GridViewRow).RowIndex %>' Width="0" Height="0" />

</ItemTemplate>

</asp:TemplateField>

</Columns>

</asp:GridView>

后台:

步骤3:

添加GridView的RowCommand事件

protected void gv_StockInfo_RowCommand(object sender, GridViewCommandEventArgs e)

{

int id = Convert.ToInt32(e.CommandArgument)

gv_StockInfo.SelectedIndex = id

//在这里添加你的GridView的数据绑定过程或函数。

}

与2楼的回答不同之处在于,此方法是通过调用GridView的事件,使GridView真正的选取该行,而不是改变该行的现实效果。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11458845.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存