小编Ioa*_*rcu的帖子

LINQ RefreshMode如何工作?

如果发生冲突,我需要用我的更改覆盖数据库中的值.我在MSDN上找到以下文章,解释了如何使用RefreshMode解决冲突:

http://msdn.microsoft.com/en-us/library/system.data.linq.refreshmode.aspx

我决定KeepCurrentValues对我的要求有意义,我也发现这个页面有一个这个模式的例子:

http://msdn.microsoft.com/en-us/library/bb399421.aspx

但是当我实现它时,数据库中的值总是覆盖我的更改.我尝试将RefreshMode更改为OverwriteCurrentValues和KeepChanges,并且每次保存数据库中的值.我的方法是在VisualStudio的调试模式下手动更改数据库中的值.VS中的代码是:

[MyDataContext] db = new [MyDataContext]();
try
{
    [MyLINQType] old = (from o in db.[MyLINQType] where o.ID=1 select o).Single();
    old.IntField = 55;

    // This is where I change the IntField value manually in the database in
    // debug mode to generate the conflict.
    db.SubmitChanges(ConflictMode.ContinueOnConflict);
}
catch (ChangeConflictException)
{
    db.ChangeConflicts.ResolveAll(RefreshMode.KeepCurrentValues);
}
Run Code Online (Sandbox Code Playgroud)

我知道冲突会出现,但每次,无论我如何更改RefreshMode,都不会保存值55,并保留我在数据库中手动进行的更改.是否有一些技巧可以达到预期的效果?我一开始尝试从代码内部生成冲突,但也没有按预期工作.也许我不明白RefreshMode应该如何工作.欢迎任何想法.

linq database conflict linq-to-sql

12
推荐指数
1
解决办法
5108
查看次数

如何在Page_Load获取用户本地时间

我有一个用ASP.NET编写的网页,我需要检索最终用户的本地时间Page_Load.我想过使用Javascript来获取本地时间(通过使用new Date()),但问题是脚本是在服务器事件之后运行的.

有关如何实现这一目标的任何想法?

编辑:我的页面非常复杂:它显示一个图表,其中包含来自数据库,对象/字段选择列表等的大量计算字段; 客户现在要求它考虑用户的时区,并且应该由网页自动确定时区.用户日期对于确定图表间隔(显示数据的那一天)非常重要.数据加载(因为它是如此复杂)在两个做Page_LoadPage_PreRender.放弃这些事件需要整页重写.

答案启发的最终解决方案:以下是我最终解决问题的方法.我将当地日期保存在cookie中.以下是设置cookie的方法:

function SetLocalDateCookie() {
    var cookieName = 'LOCALDATE';
    var localDate = new Date();
    var realMonth = localDate.getMonth() + 1;
    var localDateString = localDate.getFullYear() + "/" + realMonth + "/" + localDate.getDate();
    setCookie(cookieName, localDateString, 2);
    try {
        var exdate = new Date();
        exdate.setDate(exdate.getDate() + 2);
        document.cookie = cookieName + "=" + escape(localDateString) + ";expires=" + exdate.toGMTString();
    }
    catch (e)
    { }
}
Run Code Online (Sandbox Code Playgroud)

在我的主页面中,我将此方法称为$(document).ready.在我使用此cookie的页面上,我将以下代码添加到Page_Init:

if …
Run Code Online (Sandbox Code Playgroud)

javascript c# asp.net timezone

7
推荐指数
1
解决办法
7498
查看次数

AjaxToolkit:页面上的最后一个TabContainer专注于页面加载

我在ASP.NET项目的页面上使用了多个TabContainer,我注意到一个非常奇怪的行为:当页面加载时,焦点跳转到页面上的最后一个TabContainer,导致它向下滚动.我没有明确关注任何控件,所以我不明白它的来源.我也在控件之间切换位置,它总是最后一个聚焦.TabContainers没有任何花哨的设置,这基本上是它们的样子:

<cc1:TabContainer ID="tabContainer" runat="server">
    <cc1:TabPanel runat="server" HeaderText="Header1" ID="tabPanel1" TabIndex="0">
        <HeaderTemplate>
            <asp:Label ID="lblTab1" runat="server" Text="Tab1"></asp:Label>
        </HeaderTemplate>
        <ContentTemplate>
            ... (anything goes here, it still doesn't work)
        </ContentTemplate>
    </cc1:TabPanel>
    <cc1:TabPanel runat="server" HeaderText="Header2" ID="tabPanel2" TabIndex="1">
        <HeaderTemplate>
            <asp:Label ID="lblTab2" EnableViewState="False" runat="server" Text="Tab2"></asp:Label>
        </HeaderTemplate>
        <ContentTemplate>
            ... (anything goes here, it still doesn't work)
        </ContentTemplate>
    </cc1:TabPanel>
</cc1:TabContainer>
Run Code Online (Sandbox Code Playgroud)

我知道我可以将注意力集中在一个控件上,我尝试了但是页面首先滚动到选项卡容器然后返回到聚焦控件(它看起来不太好).我尝试将焦点设置为另一个控件:

<body id="main" onload="javascript:document.getElementById('lnkLogout').focus();">
Run Code Online (Sandbox Code Playgroud)

这是TabContainer的标准行为吗?我怎么能摆脱它?

asp.net ajaxcontroltoolkit tabcontainer

6
推荐指数
2
解决办法
3758
查看次数