ASP.NET 弹出窗体选择控件

本文探讨了在ASP.NET中如何实现弹出窗体功能,特别关注使用服务器控件如Button来触发,以及在处理过程中可能出现的Object、Null和String类型的常见问题和解决方案。

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


<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UcErpCashFlow.ascx.cs" Inherits="Benq.Flower.Form.UCCommon.UcErpCashFlow" %>
<LINK href="<%=ResolveUrl("..\\..\\..\\Css\\LQ_Flower.css")%>" type="text/css" rel="stylesheet">
<TABLE id="Table1" cellSpacing="0" cellPadding="0" width="0" border="0">
<tr><td nowrap valign=middle><asp:Image id="Image1" runat="server" style="CURSOR: hand" ImageAlign="Middle"></asp:Image></td>
       <td style="width:98%" align=left valign=middle><asp:Label ID="lblName" runat="server" Text=""></asp:Label><asp:textbox id="txtName" runat="server"></asp:textbox></td>
       <td> </td></tr></table>
<asp:HiddenField ID="hidCode" runat="server" />
<asp:HiddenField ID="hidName" runat="server" />
<asp:HiddenField ID="hidAutoPostBack" runat="server" />
<asp:HiddenField ID="hidScriptID" runat="server" />
<asp:HiddenField ID="hidIsLabelShow" runat="server" />
<asp:Button ID="btnClick" runat="server" onclick="btnClick_Click"  style="display:none"
    Text="Button" />
<asp:Button ID="btnClearClick" runat="server" style="display:none"
Text="Button" onclick="btnClearClick_Click" />
<script language=javascript>
    function <%=m_strScriptID%>() {
        var _hidCode = document.getElementById("<%=hidCode.ClientID %>");
        var _hidName = document.getElementById("<%=hidName.ClientID %>");
        var _txtName = document.getElementById("<%=txtName.ClientID %>");       
        var _lblName = document.getElementById("<%=lblName.ClientID %>");   
        var _hidAutoPostBack = document.getElementById("<%=hidAutoPostBack.ClientID %>");      

        var RV = window.showModalDialog("../Public0/UCCommon/SelectErpCashFlow.aspx", "", "status:no;help:no;dialogWidth:500px;dialogHeight:525px;scroll:no;center:yes;resizable:no");
        if (RV != null && RV != "0") {
            RVS = RV.split("*");
            _hidCode.value = RVS[0];
            _hidName.value = RVS[1];
            if(_txtName!=null)
                _txtName.value = RVS[1];
            if(_lblName!=null)
                _lblName.innerText = RVS[1];
                
            if (_hidAutoPostBack.value == "TRUE")
                document.getElementById("<%=btnClick.ClientID %>").click();
        }
        else if (RV == "0") //清空
        {
            _hidCode.value = "";
            _hidName.value = "";
            if(_txtName!=null)
                _txtName.value = "";
            if(_lblName!=null)
                _lblName.innerText = "";
            if (_hidAutoPostBack.value == "TRUE")
                    document.getElementById("<%=btnClearClick.ClientID %>").click();
        }
        return false;
    }
</script>

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

namespace Benq.Flower.Form.UCCommon
{
    public partial class UcErpCashFlow : System.Web.UI.UserControl
    {
        public string m_strScriptID = "";
        public delegate void ImageItemClickDelegate(object sender, EventArgs e);
        public event ImageItemClickDelegate ImageItemClick;

        public delegate void ClearClickDelegate(object sender, EventArgs e);
        public event ClearClickDelegate ClearClick;

        public bool AutoPostBack
        {
            set
            {
                this.hidAutoPostBack.Value = value.ToString().ToUpper().Trim();
            }
            get
            {
                if (hidAutoPostBack.Value == "TRUE")
                    return true;
                else
                    return false;
            }
        }

        public bool IsLabelShow
        {
            set
            {
                this.hidIsLabelShow.Value = value.ToString().ToUpper().Trim();
            }
            get
            {
                if (hidIsLabelShow.Value == "TRUE")
                    return true;
                else
                    return false;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        public string CodeValue
        {
            set
            {
                this.hidCode.Value = value;
                DataTable _dt = new Facade.ErpCashFlowFacade().GetDataByCode(this.hidCode.Value).Tables[0];
                if (_dt.Rows.Count > 0)
                {
                    this.hidCode.Value = _dt.Rows[0]["CFITEMCODE"].ToString().Trim();
                    this.hidName.Value = _dt.Rows[0]["CFITEMNAME"].ToString().Trim();
                    this.txtName.Text = this.hidName.Value;
                    this.lblName.Text = this.hidName.Value;
                }
                else
                {
                    this.hidCode.Value = "";
                    this.hidName.Value = "";
                    this.txtName.Text = "";
                    this.lblName.Text = "";
                }
            }
            get
            {
                return hidCode.Value;
            }
        }


        /// <summary>
        /// 
        /// </summary>
        public string NameValue
        {
            set
            {
                this.hidName.Value = value;
                this.txtName.Text = value;
                this.lblName.Text = value;
            }
            get
            {
                if (IsLabelShow)
                    return lblName.Text;
                else
                    return txtName.Text;
            }
        }

        /// <summary>
        /// 控制输入框的宽度
        /// </summary>
        public int Width
        {
            set
            {
                if (IsLabelShow)
                    lblName.Width = value;
                else
                    txtName.Width = value;
            }
        }

        /// <summary>
        /// 控制输入框是否可输
        /// </summary>
        public bool ReadOnly
        {
            set
            {
                txtName.ReadOnly = value;
            }
        }


        public bool Enabled
        {
            set
            {
                txtName.Enabled = value;
                Image1.Visible = value;
            }
        }

        public bool ImageVisible
        {
            set
            {
                Image1.Visible = value;
            }
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {

            }

            this.hidScriptID.Value = "ImgSelectErpCashFlowClick" + this.hidCode.ClientID;
            this.Image1.ImageUrl = this.ResolveUrl("..\\Image\\WebResource.gif");
            this.Image1.Attributes["onclick"] = "return " + this.hidScriptID.Value + "();";

            if (txtName.ReadOnly || !txtName.Enabled || IsLabelShow)
            {
                this.txtName.Text = this.hidName.Value;
                this.lblName.Text = this.hidName.Value;
            }

            m_strScriptID = this.hidScriptID.Value;
        }


        protected void btnClick_Click(object sender, EventArgs e)
        {
            if (ImageItemClick != null)
                ImageItemClick(sender, e);
        }

        protected void btnClearClick_Click(object sender, EventArgs e)
        {
            if (ClearClick != null)
                ClearClick(sender, e);
        }

        protected override void OnPreRender(EventArgs e)
        {
            base.OnPreRender(e);

            if (IsLabelShow)
            {
                this.lblName.Visible = true;
                this.txtName.Visible = false;
            }
            else
            {
                this.lblName.Visible = false;
                this.txtName.Visible = true;
            }
        }
    }
}

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SelectErpCashFlow.aspx.cs" Inherits="Benq.Flower.Form.UCCommon.SelectErpCashFlow" %>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>选择现金流量项目</title>
    <base target="_self"/>
    <link href="../Css/FormPublic_2Column_NoBorder.css" rel="stylesheet" />
    <script language=javascript>
        function ClickOK() {
            var RV = "";
            var list = document.getElementById("<%=lstData.ClientID%>");
            if (list.selectedIndex != -1) {
                RV = list.options[list.selectedIndex].value;
            }

            if (RV != "") {
                //公司ID * 公司名称 * 单位ID
                window.returnValue = RV;
                window.close();
            }
            else {
                alert("请选择现金流量项目!");
            }
            return false;
        }
        function ClickClear() {
            window.returnValue = "0"
            window.close();
            return false;
        }
        function ClickCancel() {
            window.close();
            return false;
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <input type="hidden" id="roleIdValue" runat="server" />
    <table  width="100%">
            <tr height="4px">                
                <td width="8px">           
                </td>
                <td>     
                </td>
                <td width="8px">         
                </td>
            </tr>
            <tr>                
                <td>           
                </td>
                <td>      
                      <table width="100%">
                        <tr>
                            <td><asp:TextBox ID="txtCondition" runat="server" Width="180px" 
                                    MaxLength="50"></asp:TextBox></td>
                            <td width="10px"></td>    
                            <td><asp:Button ID="btnQuery" runat="server" Text="查询" 
                                    onclick="btnQuery_Click"></asp:Button></td>    
                            <td></td>    
                        </tr>
                        <tr>
                            <td colspan=7>
                                <asp:ListBox ID="lstData" runat="server" Height="400px" Width="98%" ondblclick="return ClickOK();" ></asp:ListBox>
                            </td>
                        </tr>                        
                      </table>                       
                </td>
                <td>          
                </td>
            </tr>    
            <tr height="4px">                
                <td width="8px">           
                </td>
                <td>     
                </td>
                <td width="8px">         
                </td>
            </tr>        
            <tr>                
                <td>           
                </td>
                <td align=center>
                    <asp:Button ID="btnOK" runat="server" Text="确定" OnClientClick="return ClickOK();"></asp:Button>    <asp:Button ID="btnClear" runat="server" Text="清空" OnClientClick="return ClickClear();"></asp:Button>    <asp:Button ID="btnCancel" runat="server" Text="取消" OnClientClick="return ClickCancel();"></asp:Button>     
                </td>
                <td>          
                </td>
            </tr>
        </table>
    </div>
    </form>
</body>
</html>

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

namespace Benq.Flower.Form.UCCommon
{
    public partial class SelectErpCashFlow : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Expires = -1;
            if (!IsPostBack)
            {
                btnQuery_Click(null, null);
            }
        }

        protected void btnQuery_Click(object sender, EventArgs e)
        {
            string _strID = "";
            string _strShow = "";
            string _strCondition = this.txtCondition.Text.Trim().Replace("'", "''");
            DataTable _dt = new Facade.ErpCashFlowFacade().GetDataByCondition(_strCondition).Tables[0];
            this.lstData.Items.Clear();
            for (int i = 0; i < _dt.Rows.Count; i++)
            {
                //公司ID * 公司名称 * 单位ID
                _strID = _dt.Rows[i]["CFITEMCODE"].ToString().Trim() + "*" + _dt.Rows[i]["CFITEMNAME"].ToString().Trim();
                _strShow = _dt.Rows[i]["CFITEMNAME"].ToString().Trim();
                this.lstData.Items.Add(new ListItem(_strShow, _strID));
            }
        }
    }
}








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值