小编bgs*_*264的帖子

使用复选框等图像

我希望有一个标准复选框的替代品 - 基本上我想使用图像,当用户点击图像时,淡出它并覆盖一个勾选框.

从本质上讲,我想做一些类似于Recaptcha 2的功能,当它让你点击符合特定标准的图像时.您可以在此处查看Recaptcha演示,但有时可能会让您解决文本问题,而不是图像选择.所以这是一个截图:

Google Recaptcha截图

当您单击其中一个图像(在这种情况下,包含牛排图片)时,您单击的图像会缩小并显示蓝色勾号,表示您已勾选它.

假设我想重现这个确切的例子.

我意识到我可以有9个隐藏的复选框,并附加一些jQuery,这样当我点击图像时,它会选择/取消选中隐藏的复选框.但是如何缩小图像/覆盖蜱?

javascript css jquery html5

155
推荐指数
4
解决办法
6万
查看次数

实体框架:坚持在多对多中添加新实体,而不是重新使用现有的FK

简短地说,我有多对多的关系
Cases -----< CaseSubjectRelationships >------ CaseSubjects

更全面:案例(ID,CaseTypeID,.......)
CaseSubjects(ID,DisplayName,CRMSPIN)
CaseSubjectsRelationships(CaseID,SubjectID,PrimarySubject,RelationToCase,...)

在我的多对多链接表中是与主题与特定案例的关联相关的其他属性 - 例如,开始日期,结束日期,与案例的自由文本关系(观察者,创建者等)

已创建实体框架数据模型 - ASP.NET 4.0版

我有一个带有一个方法的WCF服务,该方法CreateNewCase接受一个Case对象(由实体框架创建的实体)作为其参数- 它的工作是将案例保存到数据库中.

WCF服务由第三方工具调用.这是发送的SOAP:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Body>
        <CreateNewCase xmlns="http://tempuri.org/">
            <c xmlns:a="http://schemas.datacontract.org/2004/07/CAMSModel">
                <a:CaseSubjectsRelationships>
                    <a:CaseSubjectsRelationship>
                        <a:CaseSubject>
                            <a:CRMSPIN>601</a:CRMSPIN>
                            <a:DisplayName>Fred Flintstone</a:DisplayName>
                        </a:CaseSubject>
                        <a:PrimarySubject>true</a:PrimarySubject>
                        <a:RelationToCase>Interested</a:RelationToCase>
                        <a:StartDate>2011-07-12T00:00:00</a:StartDate>
                    </a:CaseSubjectsRelationship>
                    <a:CaseSubjectsRelationship>
                        <a:CaseSubject>
                            <a:CRMSPIN>602</a:CRMSPIN>
                            <a:DisplayName>Barney Rubble</a:DisplayName>
                        </a:CaseSubject>
                        <a:RelationToCase>Observer</a:RelationToCase>
                        <a:StartDate>2011-07-12T00:00:00</a:StartDate>
                    </a:CaseSubjectsRelationship>
                </a:CaseSubjectsRelationships>
                <a:CaseType>
                    <a:Identifier>Change of Occupier</a:Identifier>
                </a:CaseType>
                <a:Description>Case description</a:Description>
                <a:Priority>5</a:Priority>
                <a:QueueIdentifier>Queue One</a:QueueIdentifier>
                <a:Title>Case title</a:Title>
            </c>
        </CreateNewCase>
    </s:Body>
</s:Envelope>
Run Code Online (Sandbox Code Playgroud)

WCF引擎正确地将其反序列化为Case实体,当我查看调试器时,所有内容都已正确设置.

我想要做的是,CaseSubject如果数据库中没有CRMSPIN …

asp.net .net-4.0 entity-framework-4

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

TFS不会编译字符串插值语法

我在上周发布时更新到Visual Studio 2015.Resharper建议我可以使用以下命令更新以下字符串string.Format:

string filePath = HttpContext.Server.MapPath(string.Format("~/App_Data/{0}.xlsx", Guid.NewGuid()));
Run Code Online (Sandbox Code Playgroud)

要使用字符串插值:

string filePath = HttpContext.Server.MapPath($"~/App_Data/{Guid.NewGuid()}.xlsx");
Run Code Online (Sandbox Code Playgroud)

我这样做了,一切都很好.

但是我打破了TFS的构建:

Controllers\MyController.cs(224):意外字符'$'

因此,我们较旧的非更新版本的TFS似乎无法编译C#6中的新功能.

该项目仍然以使用框架4.5为目标,但我没有针对4.6.我(错误地)认为仍然以旧框架为目标意味着它可以由仍然使用VS2013和我们的TFS构建服务器的其他团队成员构建.

所以看起来我们的TFS需要更新......某些东西.

我需要在TFS服务器上安装什么才能让它编译这个新语法?最新版本的.NET Framework还是其他什么?

tfs roslyn visual-studio-2015

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

调用FOR XML存储过程的实体框架截断为2033个字符

我有一个存储过程,在它的末尾使用FOR XML语句,并返回一些XML.

我正在使用.NET 4和实体框架,当我执行此存储过程的函数导入并尝试通过实体框架调用它时,它会截断2033个字符的返回值.

我将实体框架换成传统的ADO.NET方法来调用具有相同问题的存储过程 - 截断为2033个字符 - 这时我遇到了以下MSDN文章,解释这是设计并使用"ExecuteXMLReader" "克服它的方法:

http://support.microsoft.com/kb/310378

所以这现在作为临时修复工作,但我想使用Entity Framework函数导入,所以我没有将ADO.NET代码与EF代码混淆.

有没有什么方法可以在EF中使用函数导入,返回XML并克服2033字符限制?

关心
bgs264

stored-procedures entity-framework .net-4.0 for-xml

10
推荐指数
2
解决办法
3281
查看次数

从SQL Server 2008链接服务器检索> 901行到Active Directory

在SQL Server 2008(版本10.0.4000)中,我已经创建了一个到Active Directory服务器的链接服务器.

这个查询:

select  TOP 901 *
from  openquery(adsisca, '
select  givenName,
                sn,
                sAMAccountName          
from    ''LDAP://10.1.2.3:389''
where   objectCategory = ''Person''
        and
        objectClass = ''InetOrgPerson''
')
Run Code Online (Sandbox Code Playgroud)

作品.

但是,更改查询并尝试检索902行不会:

select  TOP 902 *
    from  openquery(adsisca, '
    select  givenName,
                    sn,
                    sAMAccountName          
    from    ''LDAP://10.1.2.3:389''
    where   objectCategory = ''Person''
            and
            objectClass = ''InetOrgPerson''
    ')
Run Code Online (Sandbox Code Playgroud)

错误是:

消息7330,级别16,状态2,行1无法从OLE DB提供程序"ADSDSOObject"获取链接服务器"adsisca"的行.

我发现其他人在论坛上讨论相同的问题,他们从来没有修复它,只是围着它编写多个视图并将它们联合在一起.

是否有一个更优雅的修复,是否有一个设置,我可以在某处更改以检索超过901行?

linked-server active-directory sql-server-2008

7
推荐指数
2
解决办法
3万
查看次数

会话在 20 分钟后到期:是否空闲

我在用户通过申请表时丢失会话数据时遇到了一些麻烦。看起来他们正在通过应用程序表单丢失会话状态。(ASP.NET 4.0 WebForms 项目,IIS 6.0)

会话存储在状态服务器的进程外,因此它不是配置更改、应用程序域回收等 AFAIK。

<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" timeout="20" />
Run Code Online (Sandbox Code Playgroud)

我正在使用表单身份验证,滑动过期工作正常,正如您从下面的日志中看到的那样 - 您可以看到票证过期时间是正确的,并且按预期延长。

<authentication mode="Forms">
   <forms loginUrl="~/Login.aspx" />
</authentication>
Run Code Online (Sandbox Code Playgroud)

我启用了一些自定义日志记录以尝试跟踪此情况。在每次Session_Start发生火灾时,global.asax我都会记录一些内容,并且每次有人加载应用程序表单或单击“下一步”以在浏览应用程序表单时在各个部分(在 MultiView 中)之间移动时,我也会记录一些内容。

以下是人们丢失会话状态的两个示例。日志以日志条目的日期/时间开始,然后是一些措辞。括号中的第二个日期/时间(在措辞之后)是 FormsAuthentication cookie 的到期日期/时间,源自CType(ctx.User.Identity, FormsIdentity).Ticket.Expiration.ToString

日志记录还会记录用户的 IP 地址和会话 ID。在将它们粘贴到此处之前,我已将其删除,我可以确认所有日志条目的 IP 地址和会话 ID 都相同。

示例 1:

**[26/10/2010 13:07] 会话开始 []**
[26/10/2010 13:11] 申请表第一页_加载 [26/10/2010 13:31:19]
[26/10/2010 13:13] 下一次点击应用表单,当前索引为 1 (vwSection1) [26/10/2010 13:31:19]
[26/10/2010 13:14] 下一次点击应用表单,当前索引为 2 (vwSection2) [26/10/2010 13:31:19]
[26/10/2010 13:15] 下一次点击应用表单,当前索引为 3 (vwSection3) [26/10/2010 13:31:19]
[26/10/2010 13:20] 下一次点击应用表单,当前索引为 5 (vwSection4) [26/10/2010 …

asp.net iis-6 session-state session-timeout asp.net-4.0

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

ASP.NET单元测试Windows7/IIS7

今天花了几个小时尝试针对ASP.NET项目编写一些单元测试.这是Visual Studio 2010.

将Windows 7 Enterprise与IIS7配合使用.

我采取的步骤是:

  1. 为解决方案添加了新的测试项目
  2. 打开一个类文件作为网站的一部分(Member.vb)
  3. 在类文件中右键单击并"生成单元测试"
  4. 选择我想要生成存根的方法,选择添加到我的测试项目,单击OK
  5. 在测试项目中打开生成的MemberTest.vb文件,在其中一个生成的测试中单击,单击"在curent context中运行测试"

使用IIS6计算机的Windows XP Professional上执行这些精确步骤时,它可以正常工作.

但是在IIS7上的Windows 7 Enterprise机器上,我得到:

指定的URL('http:// localhost/MyProject')与有效目录不对应.配置为在IIS中的ASP.NET中运行的测试需要存在URL的有效目录.URL可能无效或可能未指向有效的Web应用程序.

所以发生了什么,我可以确认我可以浏览到http:// localhost/MyProject并且它显示完美.

我确信我在Windows/IIS中缺少某种配置,但我真的很茫然.

生成的测试方法:

<TestMethod(), _
 HostType("ASP.NET"), _
 UrlToTest("http://localhost/MyProject")> _
Public Sub MyMethodTest()
    Dim target As Member_Accessor = New Member_Accessor() ' TODO: Initialize to an appropriate value
    Dim CurrentVal As Short = 0 ' TODO: Initialize to an appropriate value
    Dim expected As Short = 0 ' TODO: Initialize …
Run Code Online (Sandbox Code Playgroud)

asp.net iis-7 unit-testing windows-7

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

实现抽象方法时更改参数类型

有没有办法在抽象方法中将抽象类型定义为参数,并且在派生类中实现该方法时,您是否更改方法的类型以接受派生类型?

码:

public abstract class ProductBase
{
}

public class SomeProduct
    : ProductBase
{

}

public abstract class A
{
    protected abstract void addProduct(ProductBase p);
}

// This works
public class B : A
{        
    protected override void addProduct(ProductBase p)
    {
        // Do some work
    }
}

// This is what I'd like to do
public class C : A
{
    // Compiler error here because I have accepted a SomeProduct and not a ProductBase
    protected override void addProduct(SomeProduct p) …
Run Code Online (Sandbox Code Playgroud)

c# inheritance abstract-class

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

Bugzilla - 我能看到昨天的表现吗?

我正在运行Bugzilla 4.2.5.我想保存搜索以查看我昨天工作的内容 - 所以我记录的任何时间都反对或更新了评论.

我希望我可以使用输出来帮助我每天的scrum问题"你昨天做了什么?"

当我进入搜索 - >高级搜索时,我可以看到"按更改历史记录搜索"部分,它看起来与我想要使用的完全相同.

所以为了测试它,我在分配给我的错误上记录了一个小时.我希望能够在最后一天找到该错误.

所以我进入"更改历史记录"部分,选择"工作小时数"字段 - (我可以输入一个通配符changed to吗?)无论如何我知道它已经从0转换为1小时,所以我将输入" 1"进入那个领域.

接下来是日期,它说我可以进入YYYY-MM-DD or relative dates.如何在昨天和今天之间进行相对更改...?无论如何,我会在2013-01-01和2013-12-31之间看一下.

它带回来了Zarro Boogs Found.那么我在搜索中做错了什么,我知道我刚刚改变了一个我正在研究的错误,并设置了一小时的时间.

我希望有人可以提供帮助,我已经很好地搜索了文档,并尝试了几个小时才能完成这项工作!谢谢!

bugzilla

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

C#泛型“在”关键字

最近,我被分配去对现有应用程序进行一些维护工作。我遇到了以下代码:

public interface IEntityService<T, in TKey>
{
    T GetEntityById(TKey id);    
    IEnumerable<T> GetAll();    
    void Update(T entity);    
    void Delete(TKey key);
}
Run Code Online (Sandbox Code Playgroud)

我不确定in关键字对第二个通用参数的作用TKey

我碰到了以下MSDN文章,(应该)向我完美地解释了它:
在(通用修饰符)(C#参考)中

但是,我并没有真正理解它。它说的是:

对于泛型类型参数,in关键字指定类型参数是互变的。您可以在通用接口和委托中使用in关键字。

借助Contravariance,您可以使用比通用参数指定的类型更少的派生类型。这允许实现变体接口的类的隐式转换和委托类型的隐式转换。引用类型支持泛型类型参数中的协方差和反方差,而值类型不支持它们的协方差和反方差。

如果类型仅用作方法参数的类型而不用作方法返回类型,则可以在通用接口或委托中将其声明为反变量。引用和输出参数不能为变量。

具有相反类型参数的接口允许其方法接受比接口类型参数指定的派生类型更少的参数。例如,因为在.NET Framework 4中,在IComparer接口中类型T是互变的,因此您可以将IComparer(Of Person)类型的对象分配给IComparer(Of Employee)类型的对象,而无需使用任何特殊的转换方法如果Employee继承Person。

可以为反委托代理分配相同类型的另一个委托,但是派生类型参数较少。

我认为这很有意义,但特别是引用

借助Contravariance,您可以使用比通用参数指定的类型更少的派生类型。

这对它有什么用int?有没有我会传入的“较少派生类型”?

c# generics contravariance

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

如何在DataGrid中的按钮上设置CssClass

我在DataGrid中有一个ButtonColumn:

<asp:ButtonColumn HeaderText="Edit" ButtonType="PushButton" Text="Edit" />
Run Code Online (Sandbox Code Playgroud)

我如何设置它的CSS类?

我能看到的唯一方法就是挂钩RowDataBound事件:

Protected Sub dgSchedule_ItemDataBound(sender As Object, e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles dgSchedule.ItemDataBound
    If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then
        DirectCast(e.Item.Cells(6).Controls(0), Button).CssClass = "confirmButton"

    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

我觉得必须有一个更整洁的方式.如果我添加/删除列会发生什么,我将不得不回到这里并记得更改第6列......

我尝试使用TemplateColumn和平常asp:Button- 这工作,但然后点击它没有触发我需要触发的网格的ItemCommand事件.

asp.net gridview .net-4.0

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

如何在DetailsView中动态隐藏字段(字段计数始终为0)

我正在使用 aDetailsView显示来自 a 的单行的详细信息DataTable

我在设计时知道列名,所以我AutoGenerateRows = true在标记中。

DataView dv = myDataTable.AsDataView();
dv.RowFilter = string.Format("ResourceID = {0}", resourceId);

dvScoresBreakdown.DataSource = dv;
dvScoresBreakdown.DataBind();
Run Code Online (Sandbox Code Playgroud)

DataView我不想DetailsView显示大约 4 列- 主要是 ID 列。

我知道我应该访问 的Fields属性DataView并将相关字段设置为不可见:

dvScoresBreakdown.Fields[0].Visible = false;
dvScoresBreakdown.Fields[1].Visible = false;
Run Code Online (Sandbox Code Playgroud)

但是,.Fields.Count始终为零。所以我得到一个索引越界异常。

当我说“始终为零”时,我的意思是.DataBind()OnDataBindingOnDataBound、 和OnPreRender事件中也是零。

但是,DetailsView 确实在页面上呈现并显示所有内容 - 原始中的所有列DataView- 所以数据视图是绑定的!

我究竟做错了什么?

asp.net detailsview

2
推荐指数
1
解决办法
5546
查看次数