使用了ajax动态加载ascx,请问怎么调用ascx中的函数呢?

人间挣道 2012-11-27 12:02:10
1.aspx页面中:(使用ajax显示ascx)
<asp:UpdatePanel ID="UpdatePanel3" runat="server">
<ContentTemplate>
<div ID="UCstmb" runat="server">

</div>
<asp:UpdateProgress ID="UpdateProgress3" runat="server">
<ProgressTemplate>
正在调入模版,请稍候……………………</ProgressTemplate>
</asp:UpdateProgress>
</ContentTemplate>
</asp:UpdatePanel>

a.aspx.cx中动态显示几个控件(2.ascx\3.ascx\4.ascx)

2.ascx等每个控件中有一个函数
public void SaveData()
{}

如何点击1.aspx中的保存按钮使2.ascx(3、4等)中的savedata()执行。
...全文
263 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
我是小李 2012-11-30
  • 打赏
  • 举报
回复
txtMobanID.Text = ddlMB.SelectedValue.ToString().Trim(); if (txtMobanID.Text.Trim() != "") { uc = Page.LoadControl("~/Moban/" + txtMobanID.Text + ".ascx"); uc.ID = txtMobanID.Text; this.UCstmb.Controls.Clear();//在主页面中显示控件ud this.UCstmb.Controls.Add(uc); } 在此基础上加入关键值,如隐藏框。如隐藏框value为1则为加载的1.ascx;2则为2.ascx …… 点击按键时利用AJAx后台请求ascx。然后利用转入的关键参数调用自定义的事件。
人间挣道 2012-11-27
  • 打赏
  • 举报
回复
补充一下: cs中的动态显示控件的代码 protected void ddlMB_SelectedIndexChanged(object sender, EventArgs e) { txtMobanID.Text = ddlMB.SelectedValue.ToString().Trim(); if (txtMobanID.Text.Trim() != "") { uc = Page.LoadControl("~/Moban/" + txtMobanID.Text + ".ascx"); uc.ID = txtMobanID.Text; this.UCstmb.Controls.Clear();//在主页面中显示控件ud this.UCstmb.Controls.Add(uc); } }
宝_爸 2012-11-27
  • 打赏
  • 举报
回复
又考虑了下,本来觉得还有一种方法Delegate的,好像不是太好,就不说了。
宝_爸 2012-11-27
  • 打赏
  • 举报
回复
如果UserControl是在CodeBehind中动态创建的,我觉得有两种方法解决: 1. 父页面,取得user control的值。

Protected Sub btnDisplayValues_Click(ByVal sender As Object, _
          ByVal e As System.EventArgs) Handles btnDisplayValues.Click
        ltlValues.Text = ""
    For Each c As Control In ph1.Controls
        'Find the specific user control that we added to this 
        'placeholder, and then get the selected values
        'for the dropdownlist, checkbox, and textbox and print them to the screen.
        If c.GetType.Name.ToLower = "webusercontrol_ascx" Then
            Dim uc As UserControl = CType(c, UserControl)      '这里转换成自定义的类型,然后就能访问其属性和方法了。
            Dim tbx1 As TextBox = uc.FindControl("tbx1")
            Dim ddl1 As DropDownList = uc.FindControl("ddl1")
            Dim cbx1 As CheckBoxList = uc.FindControl("cbx1")

            Dim sb As New System.Text.StringBuilder
            sb.Append("Textbox value: " & tbx1.Text & "<br />")
            sb.Append("Dropdown value: " & ddl1.SelectedValue & "<br />")
            sb.AppendLine("Checkbox values: ")

            For Each li As ListItem In cbx1.Items
                If li.Selected = True Then
                    sb.Append(li.Value & "<br />")
                End If
            Next

            sb.Append("<hr />")

            ltlValues.Text &= sb.ToString
        End If
    Next
End Sub
完整代码及解释参考: Dynamically add and remove user controls http://www.codeproject.com/Articles/26589/Dynamically-add-and-remove-user-controls
宝_爸 2012-11-27
  • 打赏
  • 举报
回复
Ajax中动态加载User Control怎么添加的?
rayyu1989 2012-11-27
  • 打赏
  • 举报
回复
你可以传个参数 依靠不同的参数值执行不同的函数

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧