• 关于两个自定义控件的取值问题


    “一个.aspx的页面中,用到了两个用户控件,其中想做的到A控件有一个按钮,点击的时候获取到B控件中的一个textbox的值。
    因为在生成的时候名字会改变,用findcontrol的时候名字该如何写呢?
    另外像这种问题有几种解决的办法呢?”

    论坛上看到这个问题http://bbs.csdn.net/topics/390357779,Insus.NET提供自己的解决方法,先看看解决运行的效果:

    首先创建一个站点,然后创建两个用户控件,一个是UcA,一个是UcB。 在UcB的控件上拉一个TextBox。

    View Code
    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="UcB.ascx.cs" Inherits="UcB" %>
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>


    创建一个接口IGetValue:

    IGetValue.cs
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    /// <summary>
    /// Summary description for IGetValue
    /// </summary>
    namespace Insus.NET
    {
        public interface IGetValue
        {
            string GetValue();
        }
    }


    接下来,用户控件UcB实现这个接口,接口返回TextBox的Text值。

    View Code
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Insus.NET;
    
    public partial class UcB : System.Web.UI.UserControl,IGetValue
    {
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
    
        public string GetValue()
        {
            return this.TextBox1.Text.Trim();
        }
    }


    创建一个aspx页面,如Default.aspx,切换至设计模式,把两个用户控件UcA,UcB拉至Default.aspx:

    View Code
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
    
    <%@ Register Src="UcA.ascx" TagName="UcA" TagPrefix="uc1" %>
    <%@ Register Src="UcB.ascx" TagName="UcB" TagPrefix="uc2" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
            <fieldset>
                <legend>UcA
                </legend>
                <uc1:UcA ID="UcA1" runat="server" />
            </fieldset>
            <fieldset>
                <legend>UcB
                </legend>
                <uc2:UcB ID="UcB1" runat="server" />
            </fieldset>
        </form>
    </body>
    </html>


    到这里,再创建一个接口Interface,目的是为了获取UcB这个用户控件。

    IGetUserControl.cs
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    
    /// <summary>
    /// Summary description for IGetUserControl
    /// </summary>
    namespace Insus.NET
    {
        public interface IGetUserControl
        {
            UserControl GetUc();
        }
    }


    接口创建好之后,在Default.aspx.cs实现这个IGetUserControl接口。

    View Code
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Insus.NET;
    
    public partial class _Default : System.Web.UI.Page,IGetUserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            
        }
    
    
        public UserControl GetUc()
        {
            return this.UcB1;
        }
    }


    到最后,我们在UcA这个用户控件的按钮Click事件写:

    View Code
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Insus.NET;
    
    public partial class UcA : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
    
        protected void Button1_Click(object sender, EventArgs e)
        {
            IGetUserControl ucb = (IGetUserControl)this.Page;
            IGetValue value  = (IGetValue)ucb.GetUc();
    
            Response.Write("<scr" + "ipt>alert('" + value.GetValue() + "')</scr" + "ipt>");
        }
    }


     

  • 相关阅读:
    Linux下的SVN服务器搭建
    [转][osg]关于PagedLOD 加载卸载机制
    [原][osg]osg文件与osgb文件的区别
    [转][cesium]1.添加本地服务器
    [原][osg][osgearth]倾斜摄影2.文件格式分析:OSGB
    [原][数学][C++][osg]空间向量OA到转到空间向量OB、以及四元素Q1转到Q2的函数
    [原][osgEarth]添加自由飞行漫游器
    [c][c++]按位操作
    [转]QT中QString与string的转化,解决中文乱码问题
    [原][osg][osgearth]倾斜摄影1.介绍
  • 原文地址:https://www.cnblogs.com/insus/p/2878213.html
Copyright © 2020-2023  润新知