小编tva*_*son的帖子

ASP.NET,C#和匿名类型 - 在手动构建匿名类型时迭代DataTable

我目前正在使用ASP.NET,jQuery和JSON实现客户端分页解决方案.

我一直在关注来自encosia的优秀文章:http://encosia.com/2008/08/20/easily-build-powerful-client-side-ajax-paging-using-jquery/

在我的Web方法中,我将数据从数据库中检索为DataTable:

    DataTable categoryProducts = ProductViewerAccess.GetCategoryProducts
        ("AA", 4, 0, Page.ToString(), out howManyPages, "FALSE", 0, "CostPrice", "asc", destinationList);
Run Code Online (Sandbox Code Playgroud)

然后,我将DataTable中的数据检索为匿名类型:

    var feeds =
        from feed in categoryProducts.AsEnumerable()
        select new
        {
            Description = feed.Field<string>("description"),
            MfPartNo = feed.Field<string>("MfPN"),
            Inventory = feed.Field<Int32>("Inventory")
        };
Run Code Online (Sandbox Code Playgroud)

然后,匿名类型从Web方法返回到客户端:

return feeds.Take(PageSize);

然后,模板将提取并显示字段:

  <tbody>
    {#foreach $T.d as post}
    <tr>
      <td>
        {$T.post.Description}
        <p>Mfr#: {$T.post.MfPartNo}</p>
      </td>
      <td>{$T.post.Inventory}</td>
    </tr>
    {#/for}
  </tbody>
Run Code Online (Sandbox Code Playgroud)

一切都很好.

但是,我想扩展代码以执行一些评估检查(例如,检查DataTable中的各个列不是NULL)和其他预处理(例如,调用各种函数来构建基于图像ID的图像URL - 在将DataTable的结果行作为匿名类型返回给客户端之前,这是DataTable中未显示在代码片段中的另一列.

基本上,我想迭代DataTable,执行评估检查和预处理,同时手动构建我的匿名类型.或者也许有更好的方法来实现这一目标?

无论如何我能做到这一点吗?

亲切的问候

沃尔特

c# asp.net anonymous-types

6
推荐指数
1
解决办法
1685
查看次数

GetCustomAttributes不返回值

我已经定义了一个自定义属性

[AttributeUsage(AttributeTargets.Property )]
public class FieldAttribute: Attribute
{
    public FieldAttribute(string field)
    {
        this.field = field;
    }
    private string field;

    public string Field
    {
        get { return field; }

    }
}
Run Code Online (Sandbox Code Playgroud)

我的使用自定义属性的类如下所示

[Serializable()]   
public class DocumentMaster : DomainBase
{

    [Field("DOC_CODE")]
    public string DocumentCode { get; set; }


    [Field("DOC_NAME")]
    public string DocumentName { get; set; }


    [Field("REMARKS")]
    public string Remarks { get; set; }


   }
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试获取自定义属性的值时,它返回null对象

Type typeOfT = typeof(T);
T obj = Activator.CreateInstance<T>();

PropertyInfo[] propInfo = typeOfT.GetProperties();

foreach (PropertyInfo property …
Run Code Online (Sandbox Code Playgroud)

c# reflection ado.net

6
推荐指数
1
解决办法
4669
查看次数

测量线程费用

Joe Duffy在MSDN文章" 使用并发性可伸缩性 "中指出,创建线程的成本大约为200,000个周期,并且销毁的成本大约为100,000个周期.

当我尝试创建一个新线程来执行一些计算时,我想确保计算本身比200,000个周期更昂贵.

我怎样才能测量CPU周期?我认为这比测量执行时间更有趣.

.net concurrency performance multithreading

5
推荐指数
1
解决办法
529
查看次数

使用类的main方法进行调试?

使用main方法测试java/.net类是一个好习惯吗?

我在一些教科书中看到它被推荐,但对我而言,使用单元测试框架似乎更有意义......

main方法为您提供了一个入口点,您可以测试类功能的一个方面.你可以猜测很多,但它似乎没有使用Junit或Nunit那么有意义.

language-agnostic testing unit-testing main-method

5
推荐指数
1
解决办法
751
查看次数

在使用asp.net事件验证时,如何防止半载页面的表单提交异常?

我有一个带有一些动态添加按钮的页面.如果在页面完全加载之前单击按钮,则会抛出经典异常:

Invalid postback or callback argument. 
Event validation is enabled using in configuration or in a page. For
Run Code Online (Sandbox Code Playgroud)

出于安全目的,此功能将验证回发或回调事件的参数是否来自最初呈现它们的服务器控件.如果数据有效且符合预期,请使用ClientScriptManager.RegisterForEventValidation方法注册回发或回调数据以进行验证.

我猜测尚未在表单上加载Viewstate字段,其他位正在提交.在保持事件验证的同时,防止此错误的最佳方法是什么?

asp.net eventvalidation

5
推荐指数
1
解决办法
1190
查看次数

正则表达式替换字符串但不在html标记内

我想使用JavaScript替换HTML页面中的字符串但忽略它,如果它在HTML标记中,例如:

<a href="google.com">visit google search engine</a>
you can search on google tatatata...
Run Code Online (Sandbox Code Playgroud)

我想,以取代google<b>google</b>,但不是在这里:

<a href="google.com">visit google search engine</a>
you can search on <b>google</b> tatatata...
Run Code Online (Sandbox Code Playgroud)

我试过这个:

regex = new RegExp(">([^<]*)?(google)([^>]*)?<", 'i');
el.innerHTML =  el.innerHTML.replace(regex,'>$1<b>$2</b>$3<');
Run Code Online (Sandbox Code Playgroud)

但问题是:我<b>google</b>进入了<a>标签:

<a href="google.com">visit <b>google</b> search engine</a>
you can search on <b>google</b> tatatata...
Run Code Online (Sandbox Code Playgroud)

怎么解决这个问题?

html javascript regex

5
推荐指数
2
解决办法
6446
查看次数

我如何测试我是否通过vb.net连接到sql DB?

我有以下模块,我想测试连接.如何测试连接是否有效?你能否回答一下你的答案:

Imports System.Data.SqlClient

Module Module1
    Sub Main()
        ' Create a new SqlConnectionStringBuilder and
        ' initialize it with a few name/value pairs:
        Dim builder As New SqlConnectionStringBuilder(GetConnectionString())

        ' The input connection string used the 
        ' Server key, but the new connection string uses
        ' the well-known Data Source key instead.
        Console.WriteLine(builder.ConnectionString)

        ' Pass the SqlConnectionStringBuilder an existing 
        ' connection string, and you can retrieve and
        ' modify any of the elements.
        builder.ConnectionString = _
            "server=http://sql.example.com;user id=******;" & _
            "password=***********;"
        ' Now …
Run Code Online (Sandbox Code Playgroud)

sql vb.net

5
推荐指数
1
解决办法
1万
查看次数

如何使用 HttpContext 进行重定向

我的问题是:

  1. 所以我需要创建一个自定义类/HttpHandler 并将此代码放入其中?或者我可以把它放在其他地方,比如在 global.asax 中吗?
  2. 如何检查传入的主机(例如检查 www.mydomain.com)以便我知道何时重定向?

代码:

if ("comes from certain domain")
{
  context.Response.Status = "301 Moved Permanently";
  context.Response.AddHeader("Location", "http://www.testdomain.com/Some.aspx");
}
Run Code Online (Sandbox Code Playgroud)

asp.net

5
推荐指数
1
解决办法
5720
查看次数

GroupPrincipal.Members.Remove()不适用于大型AD组

我正在使用System.DirectoryServices.AccountManagement命名空间类来管理多个组的成员身份.这些群体控制着我们的印刷会计系统的人口,其中一些非常庞大.我遇到了从这些大型组中删除任何用户的问题.我有一个测试程序来说明问题.请注意,我正在测试的组不是嵌套的,但user.IsMemberOf()似乎也有同样的问题,而GetAuthorizationGroups()正确显示用户所属的组.有问题的小组有大约81,000名成员,因为Remove()不起作用,所以它应该超过它应该有的,并且通常大约是65K左右.

我有兴趣听到有其他人遇到过这个问题并已经解决了.我有一个与微软打开的案例,但由于呼叫中心的时间差大约为17小时,因此呼叫转向很慢,因此他们在我离开家之前大约一个小时才到达工作岗位.

using (var context = new PrincipalContext( ContextType.Domain ))
{
    using (var group = GroupPrincipal.FindByIdentity( context, groupName ))
    {
        using (var user = UserPrincipal.FindByIdentity( context, userName ))
        {
            if (user != null)
            {
                var isMember = user.GetAuthorizationGroups()
                                   .Any( g => g.DistinguishedName == group.DistinguishedName );
                Console.WriteLine( "1: check for membership returns: {0}", isMember );
                if (group.Members.Remove( user ))
                {
                    Console.WriteLine( "user removed successfully" );
                    group.Save();
                }
                else
                {
                    // do save in case Remove() is lying to me …
Run Code Online (Sandbox Code Playgroud)

.net c# active-directory account-management

5
推荐指数
1
解决办法
3950
查看次数

在 JSON 中使用希腊语

这是我正在编写并与 JQuery 一起使用的 JSON。

bookData.webSites = [
    {
        id: 1,
        title: "?????????? ????????",
        image: 'images/books/min.png',
        site: 'http://delicious.com/',
        author: "",
        pages: '',
        isbn: '',
        price: '',
        type: 'book'
    }];
Run Code Online (Sandbox Code Playgroud)

在我尝试使用很长的希腊语文本之前,它运行良好,然后它就真的出错了。我有一些问题与作者的标签,但一切顺利,当我用""代替''。在很长的希腊文,我们使用"'边写,我显然是想用希腊文的描述。任何方式都成为可能。

在此先感谢这个很棒的社区的每个人的帮助!

jquery json

5
推荐指数
1
解决办法
604
查看次数