小编Tom*_*ing的帖子

按下按钮显示jQueryUI datepicker,不涉及输入字段

在ASP.NET项目中,我正在寻找一种方法,当我按下按钮时出现jQueryUI日期选择器,然后在选择日期时引发回发.我已经使用这种方法使用回发部分工作,但是当我想要它时让我的选择器消失或者在选择日期时表现正常我遇到了麻烦.

我试过了:

  • 将选择器附加到按钮本身,但它在我选择之后和回发发生之前将按钮的文本设置为所选日期,这是我不想要的.
  • 将选择器附加到按钮并将altField选项设置为<input type='text' />位于浏览器窗口外部的选项,但在选择日期时仍然设置按钮的文本.
  • 通过将其附加到a divonclick在按钮中创建它来使其内联.但是根据这篇论坛帖子,设计的内联日期选择器没有显示完成按钮,我不能通过点击它来解除它.
    • 我尝试将我自己的Done按钮添加到datepicker的按钮容器中(显示showButtonPanel设置的时间),但是当月份或年份发生变化时它会消失,我可以绑定的任何事件似乎都不允许我将其添加回来.
    • 我尝试将一个mouseup处理程序附加到文档正文,因此当我在其外部单击时我可以忽略日期选择器,但是当我单击datepicker时触发它,并且似乎阻止了选择器的工作.

这里最好的方法是什么?

javascript asp.net jquery-ui jquery-ui-datepicker

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

GridView中的数据格式设置为AutoGenerateColumns为true

GridView在ASP.NET 2.0中AutoGenerateColumns设置为true.它将在运行时绑定到DataSet许多可能的模式之一,我宁愿不为每个可能的模式设置网格和列.

网格中的某些列有时会是浮点值.似乎默认的数字格式将0.345变为0.345000.有没有办法更改默认数字格式,以便修剪为设定的小数?

asp.net gridview

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

使用浏览器后退按钮后,从错误的下拉列表回发ASP.NET

我有一个ASP.NET 2.0 Web应用程序,部分通过使用DropDownList控件进行导航.当其中一个更改时,它会导致回发,然后根据下拉列表中选择的内容将其重定向到另一个URL.

在使用下拉菜单后使用浏览器的"后退"按钮时,我注意到了奇怪的行为.程序是这样的:

  1. 在其中一个下拉列表中进行选择,从而导致回发和重定向.目前很好.
  2. 单击浏览器的"后退"按钮.
  3. 之前使用的下一个导航下拉列表(它们全部包含在一个中div),进行选择.该页面会重定向到第一次使用的URL,而不是基于此其他下拉列表重定向到的内容.

我在Firefox 10和IE9中都试过这个并且看到了同样的事情.我查看了Firebug中的Net选项卡,并在第3步的POST中看到了正确的控件.但是当我调试它时,错误下拉列表的事件处理程序(步骤1中使用的事件处理程序)将触发.

代码非常简单明了.标记示例:

<asp:DropDownList runat="server" ID="ddlTest" AutoPostBack="true" />
Run Code Online (Sandbox Code Playgroud)

下拉列实际上不是简单的<asp:DropDownList ... />元素; 我正在optgroup使用类似于的方法插入元素.

C#示例:

ddlTest.Click += new EventHandler(ddlTest_SelectedIndexChanged);
Run Code Online (Sandbox Code Playgroud)

并在ddlTest_SelectedIndexChanged:

if (ddlTest.SelectedValue != "")
{
   Response.Redirect(MyUtilClass.GetUrl(ddlTest.SelectedValue));
}
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?

更新2012年2月6日:我通过检查Request["__EVENTTARGET"]我的SelectedIndexChanged事件处理程序的内容来解决这个问题.不过,我仍然很好奇为什么会这样.为什么第一个事件会重复?为什么只有当第二个回发发生在第一个回调下面的控件时才会发生?

c# asp.net postback

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

在ASP.NET部分回发期间打开时的jQueryUI datepicker行为:年份变为1899或1900

我有一个非常有趣的bug,它有一个jQueryUI datepicker和一个UpdatePanel,其中datepicker的选择日期约为100年.jQuery是版本1.6.2,jQueryUI是版本1.8.14.这是粗略的布局:

<asp:UpdatePanel ID="myUpdatePanel" runat="server">
  <ContentTemplate>
    <asp:DropDownList ID="myDdl" runat="server" AutoPostBack="true">
      <asp:ListItem Value="foo" Text="Foo" />
      <asp:ListItem Value="bar" Text="Bar" />
    </asp:DropDownList>
    <asp:TextBox ID="myText" runat="server" CssClass="dateText" />
  </ContentTemplate
</asp:UpdatePanel>
<script type='text/javscript'>
  $(document).ready(function()
  {
     $('.dateText').datepicker({ changeYear: true, showButtonPanel: true, yearRange: '-2:+2' });
  }

  function pageLoad(sender, args)
  {
    if (args._isPartialLoad == true)
    {
      $('.dateText').datepicker({ changeYear: true, showButtonPanel: true, yearRange: '-2:+2' });
    }
  }
</script>
Run Code Online (Sandbox Code Playgroud)

所以我有一个UpdatePanel,它包含一个下拉列表,当它被更改时会导致回发,以及一个文本框.我有jQueryUI将文本框设置为datepicker.请注意,所有这些都包含在jQueryUI模式对话框中.

所以这是发生的事情:

  1. 对话框打开时,下拉列表是默认焦点.按键盘上的键将更改下拉列表中的选择,但不会启动回发.
  2. 使用键盘更改下拉列表的值后,单击文本框.部分回发开始(因为下拉失去焦点)和jQueryUI DatePicker出现显示当前月份和年份(2012年2月撰写).
  3. 在我们有机会对datepicker做任何事情之前,部分回发可能会结束.
  4. 回发完成后,单击日期选择器上的前进/后退月份按钮之一.如果您向后按,则会转到2010年11月.如果您向前按,则会转到2010年1月.
  5. 使用按钮更改月份后,单击日历中的某一天.datepicker关闭并在文本框中输入日期.如果在步骤4中向后按,则日期为1899年11月.如果在步骤4中向前按,则日期为1900年1月.

似乎日期选择器在部分回发后已经打开时初始化时会感到困惑.我知道datepicker设置不能在部分回发中存活,我需要在pageLoad函数中重新初始化它.

我可以通过$('.ui-datepicker-title').length在设置日期选择器时检查是否大于零来判断是否发生了这种情况pageLoad.但我不知道该怎么做.在验证它正在发生之后,我pageLoad在设置datepicker之前尝试了以下内容:

  • $('.dateText').unbind();
  • $('.dateText').datepicker('destroy');
  • $('#ui-datepicker-div').remove(); …

asp.net jquery updatepanel jquery-ui jquery-ui-datepicker

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

$ WCF数据服务查询URL中的DateTime的$ filter选项

WCF数据服务可以方便地通过URL中的选项查询和过滤数据.例如,假设我想要价格大于20的产品:

http://www.example.com/Service.svc/Products?$ filter =价格= 20

但是如何使用该$filter选项DateTime?说我想要本月修改过的所有产品.

http://www.example.com/Service.svc/Products?$ filter = ModifiedDate gt'2012-05-02'

这对我不起作用; 它给出了错误消息

运算符'gt'与位置13处的操作数类型'System.DateTime'和'System.String'不兼容.

我和其他比较运算符(ge,lt,le,eq)一样.到底是怎么回事?我该如何工作?我需要某种DateTime格式吗?我在上面尝试的内容似乎在此处记录.

asp.net wcf wcf-data-services

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

如何在不遭受缓存CSS问题的情况下更新Web应用程序?

说我有一个网络应用程序.我添加了一些功能,这些功能需要添加到我的Web服务器上的一些现有CSS文件.我将新功能和CSS添加部署到我的服务器,它们运行良好.访问该网站的用户可能会在他们的浏览器中缓存CSS,这意味着新功能看起来很破碎/怪异,直到他们手动刷新页面或其缓存过期.如果我的服务器和用户之间有一个缓存服务器,问题可能会更糟,在这种情况下,即使是手动刷新也无济于事(我不认为).

有没有一种常见的方法来避免这种情况?

编辑:我正在运行ASP.NET 4.0.

css web-deployment

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

无意义的C++和Objective-C++在Mavericks上崩溃

我有一个大型Mac应用程序,可以在大型数据集上运行几天.它是Objective-C++和C++的混合体.它在Mountain Lion上运行得很好,但是在Mavericks上,在运行了大约10到20分钟(其中分配和销毁了几百万个对象)后,它崩溃了.它表现得好像是因为无效指针崩溃(即在已删除的C++对象上调用一个函数),但它所指向的对象处于完全没有意义的状态.

我的所有C++类都继承自一个公共基类,其构造函数如下所示:

MyClass::MyClass()
{
  mCreated = 12345; //int member variable set here and NEVER TOUCHED AGAIN.
  //other initialization stuff
}
Run Code Online (Sandbox Code Playgroud)

当它崩溃时,调试器显示在坏对象中,值为mCreated0.它的行为好像对象从未运行其构造函数!

我不认为这是内存踩踏,因为这个值永远不会是0或其预期值,并且对象中没有其他字段的值看起来像是你期望从内存中踩踏的垃圾.

我也尝试过使用scribble运行,0x555并且0xaaa值和值不会显示在任何地方.我也试过Guard Edges.

深入调查没有透露任何信息.坏对象甚至不是同一个类.我能想到的是,Mavericks中的新内存(压缩未使用的内存)会导致一些新的行为(可能是一个bug或者一些以前未知的,大部分是非执行的规则,现在真的很重要).

有没有人见过类似的东西?或者有没有人知道任何大多数未知的内存规则会在Mavericks下更强烈地应用?

c++ macos objective-c++ osx-mavericks

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

C#2.0中的接口多态性

说我有这个界面:

public interface IFoo
{
   string Text {get;}
}
Run Code Online (Sandbox Code Playgroud)

这个实现它的类:

public class Bar : IFoo
{
   public string Text
   {
      get {return "Hello World!";}
   }
}
Run Code Online (Sandbox Code Playgroud)

我有一个函数作为参数a List<IFoo>.当我尝试传递它时List<Bar>,我得到此编译器错误:

Argument 1: cannot convert from System.Collections.Generic.List<Bar>
to System.Collections.Generic.List<IFoo>
Run Code Online (Sandbox Code Playgroud)

为什么是这样?看起来这应该起作用的原因与我传递一个Bar直接继承的类的列表相同.

.net c# oop interface .net-2.0

4
推荐指数
1
解决办法
488
查看次数

NSPredicate - 无法为谓词生成SQL,我想知道为什么?

我已经解决了我的问题[盲目]而没有理解根本原因.但我宁愿理解专业人士的概念.那么请你告诉我为什么下面相同的代码有效,但另一个没有.

代码1:不起作用

//Above code omitted...

NSPredicate * predicate = [NSPredicate predicateWithFormat:@"gender == m"]; //NOTICE HERE
[request setPredicate:predicate];   
NSError *error = nil;
self.people = [self.managedObjectContext executeFetchRequest:request error:&error];

 //Below code omitted...
Run Code Online (Sandbox Code Playgroud)

代码2:工作

//Above code omitted...

NSString *type = @"m";    
NSPredicate * predicate = [NSPredicate predicateWithFormat:@"gender == %@",type]; //NOTICE HERE
[request setPredicate:predicate];   
NSError *error = nil;
self.people = [self.managedObjectContext executeFetchRequest:request error:&error];

//Below code omitted...
Run Code Online (Sandbox Code Playgroud)


忘了告诉我有什么错误,我在下面的行上有SIGABRT,当我执行Code 1时.

 self.people = [self.managedObjectContext executeFetchRequest:request error:&error];
Run Code Online (Sandbox Code Playgroud)

还有一件事,在GCC错误中,由于"gender == m",它无法格式化谓词.


开导我!!

谢谢

objective-c nspredicate ios

4
推荐指数
1
解决办法
1678
查看次数

在iOS中,在白色上绘制透明到白色渐变

我有一个iOS应用程序,主屏幕上有文字滚动.我希望文本在屏幕底部淡出.所以我制作了一个自定义视图并执行以下操作drawRect:

CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = UIGraphicsGetCurrentContext();

CGFloat gradLocs[] = {0, 1};
CGColor *color1 = [UIColor clearColor].CGColor;
CGColor *color2 = [UIColor whiteColor].CGColor;
CFArrayRef arr = (CFArrayRef)@[(id)color1, (id)color2];
CGGradientRef grad = CGGradientCreateWithColors(colorSpace, arr, gradLocs);

CGContextSaveGState(context);
CGContextDrawLinearGradient(context, grad, CGPointMake(0, 0), CGPointMake(0, rect.size.height), 0);
CGContextRestoreGState(context);
Run Code Online (Sandbox Code Playgroud)

基本上,在视图上绘制从清晰到白色的线性渐变.我也尝试过这样做CAGradientLayer:

CAGradientLayer *layer = [CAGradientLayer layer];
layer.colors = @[(id)[UIColor clearColor].CGColor, (id)[UIColor whiteColor].CGColor];
layer.locations = @[@(0), @(1)];
layer.frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
[self.layer insertSublayer:layer atIndex:0];
Run Code Online (Sandbox Code Playgroud)

无论哪种方式,如果这被绘制在白色的顶部,我会变灰.PaintCode显示了同样的事情:

PaintCode截图

为什么是这样?似乎渐变不应该只是在白色的顶部可见.

transparency linear-gradients drawrect ios cagradientlayer

4
推荐指数
1
解决办法
1615
查看次数