我在我的应用程序路由模块中定义了一些路由数据,如下所示:
const appRoutes:Routes = [
{path: '', component: LoginComponent, data:[{PageName:"Login Page"}]}]
Run Code Online (Sandbox Code Playgroud)
我想全局获取数据,所以我使用app.component.ts来获取URL重定向相关信息,如下所示:
export class AppComponent {
title = 'Welcome';
constructor(public router: Router, public authenticationService: AuthenticationService) {
this.router.events.subscribe(event => {
console.log("Url",event.urlAfterRedirects);
console.log("Page Name", router[PageName]); //Not working
}
Run Code Online (Sandbox Code Playgroud)
我尝试注入ActivatedRoute,但每次重定向后都没有更新.
无论如何,我可以在哪里配置页面名称并在全球范围内获取它app.component.ts
.
我已经实现了如下工厂模式.
但是,由于各个类都是公共的,所以没有什么能阻止某人直接实例化它们.
它是否正确?如何确保仅通过Factory创建具体类?
namespace MRS.Framework
{
public abstract class DataSource
{
public override string ToString()
{
return "DataSource";
}
}
public class XMLDataSource : DataSource
{
}
public class SqlDataSource : DataSource
{
}
public class CSVDataSource : DataSource
{
public int MyProperty { get; set; }
public override string ToString()
{
return "CSVDataSource";
}
}
}
Run Code Online (Sandbox Code Playgroud)
工厂实施
namespace MRS.Framework
{
public abstract class DataSourceFactory
{
public abstract DataSource CreateDataSource(DataSourceType datasourcetype);
}
public class CSVDataSourceFactory : DataSourceFactory
{
public CSVDataSourceFactory() …
Run Code Online (Sandbox Code Playgroud) 我有两个名为TimeSheet.aspx.cs和TimSheet.aspx的文件,下面给出了该文件的代码供您参考.
当我构建应用程序即时获取错误"名称'GridView1'在当前上下文中不存在"甚至认为我有一个id为GridView1的控件,我也添加了runat ="server".
我无法弄清楚导致这个问题的原因.任何一个数字都可以在这里发生.
感谢和问候,
=======================================
TimeSheet.aspx.cs
=======================================
#region Using directives
using System;
using System.Data;
using System.Configuration;
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;
using TSMS.Web.UI;
#endregion
public partial class TimeSheets: Page
{
protected void Page_Load(object sender, EventArgs e)
{
FormUtil.RedirectAfterUpdate(GridView1, "TimeSheets.aspx?page={0}");
FormUtil.SetPageIndex(GridView1, "page");
FormUtil.SetDefaultButton((Button)GridViewSearchPanel1.FindControl("cmdSearch"));
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
string urlParams = string.Format("TimeSheetId={0}", GridView1.SelectedDataKey.Values[0]);
Response.Redirect("TimeSheetsEdit.aspx?" + urlParams, true);
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) {
}
}
=======================================================
TimeSheet.aspx
======================================================= …
Run Code Online (Sandbox Code Playgroud) 我从以下代码中得到"值不能为空"错误:
@Html.Label(material.ExtendedGroup)
Run Code Online (Sandbox Code Playgroud)
ExtendedGroup
确实如此null
,但我想知道如何使用Razor的HTML帮助程序来处理它 - 这与Isnull(material.ExtendedGroup,"",material.ExtendedGroup)
我们在MS SQL中的操作相同.请提出解决方案.
即使我在DataContract中通过为类ActivityType返回ActivityType.Code属性值来覆盖ToString方法.我仍然没有在客户端上设置ActivityType.Code属性值来绑定grid.can让我知道ToString方法如何对客户端可用.
这是代码库
数据合同
[DataContract]
public class Activity
{
[DataMember]
public ActivityType ActivityTypeId { get; set; }
[DataMember]
public string Code { get; set; }
[DataMember]
public string Description { get; set; }
[DataMember]
public EntityStatus Status { get; set; }
}
[DataContract]
public enum EntityStatus
{
[EnumMember]
Active = 0,
[EnumMember]
Inactive = 1
}
[DataContract]
public class ActivityType
{
[DataMember]
public string Code { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public string Description …
Run Code Online (Sandbox Code Playgroud) 这是我的表结构的样子,
<table>
<tbody>
<tr>
<td id="**SelectCheckBox**" class="helpBod">
<input id="TimeSheetWebUserControl1_TimeSheetRepeater_ctl01_CheckBox0" type="checkbox" name="TimeSheetWebUserControl1$TimeSheetRepeater$ctl01$CheckBox0"/>
</td>
<td>
</td>
</tr>
<tr>
<td id="**SelectCheckBox**" class="helpBod">
<input id="TimeSheetWebUserControl1_TimeSheetRepeater_ctl02_CheckBox1" type="checkbox" name="TimeSheetWebUserControl1$TimeSheetRepeater$ctl02$CheckBox1"/>
</td>
<td>
</td>
</tr>
<tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
我有一个按钮SelectAll我将调用一个jquery函数来检查所有复选框
功能看这个
function jqCheckAll() {
$("td#" + 'SelectCheckBox' + 'input:checkbox').attr('checked', true);
}
Run Code Online (Sandbox Code Playgroud)
问题是这只会勾选标记只有复选框如果我有100个复选框,我想选中标记所有这100个复选框点击选择所有按钮.
对于正在开发.NET应用程序的单个开发人员,成本之间的差异有以下几点:
[注:编辑严重.如果我改变了意思,请随意回滚. - 乔恩]
我们是否需要为执行.net应用程序安装完整的donet框架工作,我们不能只在可执行文件本身中嵌入CLR.
我正在尝试创建一个通用计算器类,它可以支持非常基本的算术运算,例如 add 、 sub 和 mul 。但我收到下面提到的错误。我感觉我需要在“T”上添加通用约束,以允许仅在支持 + 运算符的类型上进行操作。但无法找出解决方案。如果您能提供很好的解释来帮助我理解它的这个基本部分,那将会有很大的帮助。
“运算符‘+’不能应用于‘T’和‘T’类型的操作数
这是添加操作的代码。请提出解决此问题的解决方案。
**//this approach works**
using System.Numerics;
namespace dotnet_basic;
public class Calculator
{
public T Add<T>(T num1, T num2)
where T : INumber<T> => num1 + num2;
public T Subtract<T>(T num1, T num2)
where T : INumber<T> => num2 - num1;
}
**//Corrected the second approach now even this approach works**
namespace dotnet_basic;
public class CalculatorNew<T> where T : INumber<T>
{
public T Add(T num1, T num2)
{
return num1 + …
Run Code Online (Sandbox Code Playgroud) .net ×3
c# ×3
angular ×1
asp.net ×1
datacontract ×1
javascript ×1
jquery ×1
mysql ×1
null ×1
razor ×1
wcf ×1
web-controls ×1
webforms ×1