ASP.NET 双击Gridview编辑

本文介绍了一种在ASP.NET页面中使用JavaScript实现GridView双击事件无刷新编辑功能的方法,通过设置房间类型显示为中文并使用JavaScript函数setValue进行数据传递,实现了页面编辑效果而无需页面刷新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

界面如图:


 

 

 

 

 

 

 

 

 

需要实现功能:双击Gridview,获取当前行所在数据,把数据带到信息区域,同时信息区域新增显示为编辑。

 

实现方法1:双击Gridview后,带出id并且添加双击事件window.location.href=当前页面url?id=当前数据的id。
然后PageLoad事件里判断是否有request.QuerryString["id"]是否为null,并作出相应判断。
缺点:页面有刷新,效率低。用户体验差。

方法2:(注:示例为三层机构,数据层代码很简单。不贴出来了。)

首先在页面添加一个HiddenField隐藏控件,改id为hfState。如图:

信息区域添加名为lblState的Label控件。
房间文本框名为txtNo,
房间类型下拉列表为ddltype。
数据为手动添加:(数据库中用int保存)

<asp:DropDownList ID="ddltype" runat="server">

                       <asp:ListItem Value="0">-请选择-</asp:ListItem>

                        <asp:ListItem Value="1">单人间</asp:ListItem>

                        <asp:ListItem Value="2">标准间</asp:ListItem>

                        <asp:ListItem Value="3">商务间</asp:ListItem>

                        <asp:ListItem Value="4">总统套房</asp:ListItem>

</asp:DropDownList>

为实现页面无刷新,采用JavaScript。

function setValue(num,id,type)

        {

            document.getElementById("lblState").innerText="编辑";

            document.getElementById("txtNo").value=num;

            //给隐藏域赋值为当前id

            document.getElementById("hfState").value=id;

            var ddl= document.getElementById("ddltype");

            ddl.value=type;

        }

num为房间编号,id为主键,type为类型value。

主要部分代码:

protected void gvRoomInfo_RowDataBound(object sender, GridViewRowEventArgs e)

    {

 

        if (e.Row.RowType == DataControlRowType.DataRow)

        {

            //设置房间类型由数字显示为中文

            Label lbltype = e.Row.FindControl("lblType") as Label;

            e.Row.Attributes.Add("ondblclick", "setValue('" + e.Row.Cells[0].Text + "'," + gvRoomInfo.DataKeys[e.Row.RowIndex][0] + ","+lbltype.Text+")");

 

           //房间类型判断代码略。。。

        }

    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值