我在aspx
页面中注册了一个用户控件在用户控件中单击按钮事件时,如何调用父页面代码隐藏中的方法?
谢谢.
之前已经问过这个问题
但再次问它并没有坏处:
如何
UserControl
在ASP.net中添加模板?
从一个新的UserControl
5开始,我打电话给Contoso
:
public partial class Contoso: System.Web.UI.UserControl
{
}
Run Code Online (Sandbox Code Playgroud)
这将允许我们使用新的控件:1
<Contoso>
Stuff in here
<Contoso>
Run Code Online (Sandbox Code Playgroud)创建一个ContentTemplate
类型为的公共属性ITemplate
:
public partial class Contoso: System.Web.UI.UserControl
{
public ITemplate ContentTemplate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
并向属性添加不确定数量的属性ContentTemplate
:2
//[ParseChildren(true)]
[ParseChildren(true, "ContentTemplate")]
//[ParseChildren(false)]
public partial class Contoso: System.Web.UI.UserControl
{
[TemplateContainer(typeof(ContentContainer))]
[TemplateInstance(TemplateInstance.Single)]
[PersistenceMode(PersistenceMode.InnerProperty)]
//[PersistenceMode(PersistenceMode.InnerDefaultProperty)]
[Browsable(true)]
//[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
//[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public ITemplate …
Run Code Online (Sandbox Code Playgroud)尝试在Visual Studio 2010中构建网站项目时,我收到以下错误:
页面'/WebSite/controls/C2.ascx'不能使用用户控件'/WebSite/controls/C1.ascx',因为它在web.config中注册并与页面位于同一目录中.
我有2个Web用户控件:
controls/C1.ascx
controls/C2.ascx
Run Code Online (Sandbox Code Playgroud)
控件已在web.config中注册:
<configuration>
<system.web>
<pages>
<controls>
<add src="~/controls/C1.ascx" tagPrefix="my" tagName="C1"/>
<add src="~/controls/C2.ascx" tagPrefix="my" tagName="C2"/>
</controls>
</pages>
</system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)
C1.ascx只包含一个静态HTML,C2.ascx试图包含C1:
C1.ascx只包含一些简单的静态简单HTML.C2.ascx试图包含C1.ascx:
<%@ Control Language="VB" %>
<my:C1 runat="server" />
<p>Hello from C2</p>
Run Code Online (Sandbox Code Playgroud)
在尝试构建项目时,我收到顶部的错误消息.我意识到可以通过向C2.ascx添加另一个Register指令来修复此问题...:
<%@ Register Src="~/controls/C1.ascx" TagPrefix="ctl" TagName="C1" %>
Run Code Online (Sandbox Code Playgroud)
...但我想知道是否有更清洁的解决方案,为什么我首先得到错误?
我的笔记本电脑上安装了一个Web服务器.我正在构建一个我通过本地网络访问的Web应用程序.我有一个php文件,其中包含以下行:
$command = "/usr/bin/oowriter --invisible --convert-to pdf /var/www/hackathon/document/gaurav.doc -outdir /var/www/hackathon/pdf/"
exec($command, $output, $return_var);
print_r($output);
Run Code Online (Sandbox Code Playgroud)
所以,问题是当我在终端上运行上面的代码时,php运行完美.但是当通过Web浏览器访问时,输出只是空的,并且没有按预期进行转换.
Apache错误日志显示以下行:
[Java framework]函数createSettingsDocument(elements.cxx)中的错误.
javaldx失败了!
警告:无法从javaldx读取路径
我尝试过https://wiki.archlinux.org/index.php/Libreoffice#Fixing_Java_Framework_Error的解决方案.但它没有用.
我正在使用OpenJDK 7.
有没有人知道如何使这项工作?
我正在编写ASP.NET自定义控件,我希望它有一些属性,这些属性只能在运行时从代码中看到 - 我的意思是,这些属性在设计器和aspx代码中都不应该是可见的包含此控件的页面.我试过使用以下属性:
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[Browsable(false)]
public List<Item> SomeData
{
...
}
但不幸的是,在编辑aspx页面时,这个属性在Intellisense组合框中仍然可见.是否可以在服务器端代码之外的任何地方隐藏此属性?
我正在动态地向页面添加Web用户控件.使用LoadControl
仅采用指向.ascx
工作的虚拟路径的方法非常好.然而,过载LoadControl
需要一个类型和一个参数数组引起了一些令人头疼的问题.
Web用户控件按预期实例化,但Web用户控件中包含的控件为null,一旦我尝试使用它们就会出现异常.很奇怪,因为它在使用第一版时起作用LoadControl
.
Web用户控件,简单,带Literal
控件:
<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="MyControl.ascx.vb" Inherits="MyControl" %>
<asp:Literal ID="myLiteral" runat="server"></asp:Literal>
Run Code Online (Sandbox Code Playgroud)
控件的代码背后:
Public Class MyControl
Inherits System.Web.UI.UserControl
Public Property Data As MyData
Public Sub New()
End Sub
Public Sub New(data As MyData)
Me.Data = data
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
myLiteral.Text = Data.ID ' The Literal is null, but ONLY when I use the second LoadControl() method!
End Sub …
Run Code Online (Sandbox Code Playgroud) 我有一个现有的VB.NET Web项目,需要一些新的屏幕(webforms).由于多种原因,这些新屏幕将在C#中开发.已经有一个读围绕看来这确实是可能的:增加C#Web窗体VB Web应用程序,并添加C#用户控件现有的asp.net vb.net项目
不过我做了一个小测试:
问题是用户控件没有显示在页面上.我在这里错过了什么 这是VB.NET WebForms应用程序中无法实现的吗?以下是相关代码:
Default.aspx的
<%@ Page Title="Home Page" Language="VB" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.vb" Inherits="waWithCUserControl._Default" %>
<%@ Register TagPrefix="uac" Namespace="waUserControls" Assembly="waUserControls" %>
<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
<uac:UcTakeTest ID="myUserControl" runat="server" />
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
用户控制在单独的程序集waUserControls中
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ucTakeTest.ascx.cs" Inherits="waUserControls.UcTakeTest" %>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet">
<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
<link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css" rel="stylesheet">
<div class="container">
<div class="row">
<div class="col-md-2">
<div class="list-group">
<a href="#" class="list-group-item active">Question</a>
<a href="#" class="list-group-item">Question</a>
<a href="#" class="list-group-item">Question</a>
<a href="#" class="list-group-item">Question</a>
<a …
Run Code Online (Sandbox Code Playgroud) 我有一个Web用户控件,我有控件需要从底层页面的变量或属性中提供一些数据.
<%@ Control Language="C#" AutoEventWireup="False" CodeFile="Header.ascx.cs" Inherits="Site.UserControls.Base.Header" %>
<asp:Literal runat="server" Text='<%# Testing %>' id="ltrTesting" />
Run Code Online (Sandbox Code Playgroud)
代码隐藏
namespace Site.UserControls.Base
{
public partial class Header : UserControlBase
{
public string Testing = "hello world!";
protected void Page_Load(object sender, EventArgs e)
{
//this.DataBind(); // Does not work
//PageBase.DataBind(); // Does not work
//base.DataBind(); // Does not work
//Page.DataBind(); // Does not work
}
}
}
Run Code Online (Sandbox Code Playgroud)
我确实读过这个主题,但它不会解决我的问题,我认为这是因为这是一个用户控件,而不是一个页面.我想从代码中获取属性值
我有一个Outlook任务窗格,当您打开Outlook时打开,我已使用此方法添加此窗格.
https://msdn.microsoft.com/en-us/library/aa942846.aspx
我使用此处给出的示例显示并隐藏任务窗格:
https://msdn.microsoft.com/en-us/library/bb608590.aspx
因此,当用户点击切换按钮时,这适用于电子邮件.但是,我在Outlook的"新邮件消息"窗口中添加了另一个功能区控件,我希望同一个任务窗格也可以在该窗口的一侧使用.我设法创建另一个功能区控件(设计器)并添加了这个新按钮但是当我切换它时,它不会在新邮件消息窗口上打开任务窗格.它仅切换收件箱中可用的现有任务窗格窗口.
新邮件功能区控件的代码:
Imports Microsoft.Office.Tools.Ribbon
Imports Outlook = Microsoft.Office.Interop.Outlook
Imports Microsoft.Office.Tools
Public Class ComposeSidebarRibbon
Private Sub ComposeSidebarRibbon_Load(ByVal sender As System.Object, ByVal e As RibbonUIEventArgs) Handles MyBase.Load
End Sub
Private Sub SidebarToggleButton_Click(sender As Object, e As RibbonControlEventArgs) Handles SidebarToggleButton.Click
Globals.ThisAddIn.TaskPane.Visible = TryCast(sender, Microsoft.Office.Tools.Ribbon.RibbonToggleButton).Checked
End Sub
End Class
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?
vb.net user-controls webusercontrol outlook-vba outlook-addin
我有一个asp.net 4.0的网站,有10个页面和12个用户控件.
现在我想在asp.net MVC 4.0中迁移这个站点; 因此,我可以重新使用这些用户控件(在传统的asp.net中存在)并使用它们进行渲染<%= Html.RenderUserControl() %>
.
简而言之,我的问题是我们是否可以在asp.mvc 4中使用asp.net的用户控件?
非常感谢,
JIgar
asp.net asp.net-mvc user-controls webusercontrol asp.net-mvc-4
webusercontrol ×10
asp.net ×6
c# ×3
vb.net ×3
.net ×1
ascx ×1
asp.net-mvc ×1
data-binding ×1
libreoffice ×1
openjdk ×1
outlook-vba ×1
properties ×1
templating ×1
ubuntu ×1
webforms ×1