1, 在父窗口中增加两个Html控件
<input type=”submit” onclick=”SelInv()” value=”增行”>
<input type=”hidden” id=”TxInv” name=”TxInv” runat=”server”> 这个是运行于服务端的Html控件,且它的类型为“隐藏”,使用它的目的就是用它做一个中转
其中的脚本如下:(加入到父窗口中的html视图中)
<script language="javascript">
var vDialog=null;
function SelInv()
{
vDialog=showModalDialog("cSmallInv.aspx?invname=",window,"status:no;resizable:yes;dialogHeight:500px;dialogWidth:500px;unadorne:yes");
if (vDialog != null) vDialog.CusName2.value="";
}
</script>
2, 给TxInv在代码视图中添加ServerChanged事件,如下:
Private Sub TxInv_ServerChange(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxInv.ServerChange
Dim ProDTb As DataTable = viewstate("ProDTb")
ProDTb.Rows.Clear() //删除viewstate中所有的行
Dim item As RepeaterItem
Dim myDataRow As DataRow
Dim i As Integer = 0
For Each item In Repeater1.Items// 循环得到repeater控件中的所有数据,并储存到DataTable中
i = i + 1
myDataRow = ProDTb.NewRow()
myDataRow.Item("AutoId") = i
myDataRow.Item("产品编号") = CType(item.FindControl("ProName"), TextBox).ToolTip
myDataRow.Item("产品名称") = CType(item.FindControl("ProName"), TextBox).Text.Trim
myDataRow.Item("零售价") = CType(item.FindControl("lsPrice"), Literal).Text.Trim
myDataRow.Item("供价") = CType(item.FindControl("GjPrice"), Literal).Text.Trim
myDataRow.Item("iNum") = CType(item.FindControl("iNum"), TextBox).Text.Trim
myDataRow.Item("iMoney") = CType(item.FindControl("iMoney"), Literal).Text.Trim
myDataRow.Item("Week1") = CType(item.FindControl("Week1"), TextBox).Text.Trim
myDataRow.Item("Week2") = CType(item.FindControl("Week2"), TextBox).Text.Trim
myDataRow.Item("Week3") = CType(item.FindControl("Week3"), TextBox).Text.Trim
myDataRow.Item("Week4") = CType(item.FindControl("Week4"), TextBox).Text.Trim
myDataRow.Item("Week5") = CType(item.FindControl("Week5"), TextBox).Text.Trim
ProDTb.Rows.Add(myDataRow) '添加一行
Next
Dim cinvlist() As String = TxInv.Value.Split(",") '定义一个数组,并分割里面的内容
myDataRow = ProDTb.NewRow()
myDataRow.Item("AutoId") = i + 1
myDataRow.Item("产品编号") = cinvlist(0)
myDataRow.Item("产品名称") = cinvlist(1)
myDataRow.Item("零售价") = cinvlist(2)
//为得到供价,打开了另外的一个表(客户供价表)
Dim ctbl As DataTable = Cls_common.ExecQuerySQL("select isnull(dfeevalue,0) as dfeevalue from 客户供价 where denddate is null and ccuscode='" & cCusCode.Text & "' and csupinvcode='" & cinvlist(3) & "'")
If ctbl.Rows.Count > 0 Then
myDataRow("供价") = ctbl.Rows(0)("dfeevalue")
Else
myDataRow("供价") = 0
End If
myDataRow.Item("iNum") = 0
myDataRow.Item("iMoney") = 0
myDataRow.Item("Week1") = 0
myDataRow.Item("Week2") = 0
myDataRow.Item("Week3") = 0
myDataRow.Item("Week4") = 0
myDataRow.Item("Week5") = 0
ProDTb.Rows.Add(myDataRow)
Repeater1.DataSource = ProDTb
Repeater1.DataBind()
viewstate("ProDTb") = ProDTb ' 放到viewstate中
End Sub
3, 下面就是子窗口cSmallInv.aspx的设计,在子窗口中放置一个DataGrid控件,绑定好数据,并在ItemDataBound事件中加上提示信息以及传值的代码,如下:
Private Sub GridList_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles GridList.ItemDataBound
If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then
// 双击传值的代码(javascript)
e.Item.Attributes.Add ("ondblclick", "javascript: selTopic ('" & e.Item.Cells(0).Text & "','" & e.Item.Cells(1).Text & "','" & e.Item.Cells(2).Text & "','" & e.Item.Cells(3).Text & "')")
e.Item.Attributes.Add("title", "双击选择型号")//添加提示信息
End If
End Sub
脚本如下:(加入到cSmallInv.aspx的html视图中)
<script language="javascript" type="text/javascript">
function selTopic(id,name,dfeevalue,csupinv)
{
dialogArguments.Form1.TxInv.value=id+','+name+','+dfeevalue+','+csupinv;//这时会触发上面的TxInv的ServerChanged事件
window.close();
}
</script>
分享到:
相关推荐
VB.NET模拟控件双击事件(包括日历控件的双击功能)
在VB.NET中创建安装包的过程涉及多个步骤,主要包括新建安装项目、设置安装程序、添加项目输出、配置系统必备组件以及生成安装文件。以下是对这些步骤的详细解释: 1. **新建安装项目** - 打开VB.NET项目或解决...
例如,可以创建一个列表控件来显示可用的皮肤名称,当用户双击列表项时,触发事件处理函数,调用IrisSkin的相关API来更换皮肤。此外,开发者还需要确保所有控件都已启用皮肤功能,这可以通过遍历窗体上的控件并设置...
在VB.NET中,创建自定义控件(UserControl)是一项重要的技能,这允许开发者将复杂的逻辑或一组相关功能封装到一个可复用的组件中。本教程将带你深入理解如何利用VB.NET创建自定义控件,并将其应用到你的项目中。 ...
如果需要预览图片,可以创建一个自定义列或使用其他方法,如在单元格双击事件中显示图片。 综上所述,VB.NET与Access数据库结合,可以有效地处理图片文件的存储和检索。通过了解如何操作数据库连接、执行SQL命令...
如果还没有这个处理程序,你可以通过双击控件的属性窗口中的`KeyDown`事件来自动生成。 事件处理程序的基本结构如下: ```vb.net Private Sub YourControl_KeyDown(sender As Object, e As KeyEventArgs) Handles ...
4. 如果你需要创建一个双击选中列表项后复制进程路径和参数到剪贴板的功能,可以添加事件处理程序到列表控件(如ListBox或ListView),在双击事件中实现这个功能: ```vbnet Private Sub ListBox1_DoubleClick...
本主题将深入探讨如何利用ASP.NET GridView的双击事件来实现用户双击某行时,弹出一个窗口显示该行的详细信息。 首先,我们需要在ASP.NET页面上添加一个GridView控件,并将其与数据源(如SqlDataSource或...
1.一种是设置窗体属性,很简单,但是透明后,可以接触到窗口矩形区域下面的地方,比如有一个文件,可以直接双击打开,可以说操作是不透明的。把窗口想象成木框+玻璃,这种方法相当于只有木框,没玻璃。当然,控件还...
VB.NET 开发程序【学校信息系统源码.zip】.zip VB.NET 开发程序【学校信息系统源码.zip】.zip 陈表达SQL server开发程序案例:VB.NET 开发程序【学校信息系统exe.zip】 本程序应用技术:1、SQL自定义函数,减少每次...
以下是一个详细步骤,指导如何在VB.NET中实现这一功能: 1. **创建新项目**: 首先,启动Microsoft Visual Studio 2005,然后通过“文件”菜单选择“新建项目”。在“新建项目”对话框中,选择“Windows应用程序”...
在这个"vb.net闹钟程序最简易的"项目中,我们将探讨如何使用VB.NET创建一个基本的闹钟应用。 在VB.NET中,创建一个闹钟程序的关键在于理解和使用定时器控件(Timer Control)。这个控件允许程序在指定的时间间隔内...
VB.NET是建立在.NET Framework之上,这是一个由微软开发的运行环境,它提供了许多服务,如内存管理、类型安全、异常处理和跨语言互操作性。.NET Framework包含了基类库(BCL),提供了一组丰富的类和接口,供开发者...
通过学习和理解这个VB.NET源代码,开发者可以了解到如何在.NET Framework下构建一个功能完备的文件管理应用,这对于日常开发工作或者教学都是很有价值的。同时,这也是提升VB.NET编程技能和深入理解Windows操作系统...
在VB.NET编程环境中,"跑马灯"(Marquee)是一种常见...总之,VB.NET中的跑马灯实例提供了一个学习动画效果和事件驱动编程的良好起点,对于初学者来说,这是一个很好的实践项目,可以帮助他们巩固基础,提高编程技能。
用户可以在一个统一的环境中编写、运行和测试VB.NET程序,大大提高了开发效率。IDE提供了直观的用户界面,支持拖放控件,使得界面设计更为简便。 创建Windows应用程序是VB.NET的核心应用之一。在VB.NET中,可以使用...
1. `InputBox`函数是VB.NET中用于创建用户输入对话框的函数,它的第一个参数是提示信息,显示在对话框中,引导用户输入内容。 2. VB.NET支持多种项目类型,如Windows应用程序、Web应用程序和Windows服务,但不直接...
例如,当子窗口发送一个消息到父窗口时,父窗口的消息映射表会告诉MFC如何调用合适的函数来处理这个消息。 2. **CButton、CEdit等控件的使用** 在子窗口中,可能会包含各种控件,如按钮(CButton)和编辑框(CEdit)。...
在VB.NET编程环境中,开发一个时钟应用是一个基础但实用的练习,可以帮助初学者更好地理解事件处理、控件交互以及时间日期处理等概念。在这个项目中,我们将探讨如何利用VB.NET来实现一个简单的桌面时钟应用程序。 ...