我现在有一个页面上面引用了一个用户控件,该用户控件是用repeater读的一系列数据,现在在repeater里绑定一个imagebutton 点imagebutton就要更新页面里一个控件的值,现在就是不知道在用户控件里怎么调用页面的方法去更新那个控件的值?不知道这样能不能实现,有知道的说下啊, 也让我多种思路。

解决方案 »

  1.   

    test.ascx
    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="test.ascx.cs" Inherits="Web.control.test" %><div>
    <asp:ImageButton ID="imageBtn" runat="server" ImageUrl="~/images/qq.png" OnClick="imgBtn_Click" />
    </div>using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;namespace Web.control
    {
        public partial class test : System.Web.UI.UserControl
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                
            }        protected void imgBtn_Click(object sender, EventArgs e)
            {
                TextBox txtName = (TextBox)imageBtn.Parent.Page.FindControl("txtName");
                if (txtName != null)
                {
                    txtName.Text = "xxx";
                } 
            }    }
    }
    out.aspx 
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="out.aspx.cs" Inherits="Web._out" %><%@ Register Src="~/control/test.ascx" TagName="test" TagPrefix="csdn" %><!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 runat="server">
        <title>Control set outer value</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        
        <asp:TextBox ID="txtName" runat="server"></asp:TextBox>
        
        <csdn:test ID="test1" runat="server" />
            
        
        </div>
        </form>
    </body>
    </html>
      

  2.   

    如果你那个TextBox是个repeater呢?解释下这句什么意思啊? TextBox txtName = (TextBox)imageBtn.Parent.Page.FindControl("txtName");
      

  3.   

    举个例子:TryUserControl.aspx在它的上面应用了一个用户控件WebUserControl2.ascx.在TryUserControl.aspx中国有一个名为TextBox1的控件,那个WebUserControl2.ascx中有个Button1的控件,它的事件是: protected void Button1_Click(object sender, EventArgs e)
            {
               TextBox tb = this.Page.Page.FindControl("TextBox1") as TextBox;
                tb.Text = "123";
            }这样的话那个TextBox1的Text就为123了。
      

  4.   

    如果那个textbox是个repeater呢? 我就是往repeater上绑值,结果绑不上去啊,提示说是不存在那个repeater!