小编Ian*_*oyd的帖子

ASP.NET:如何更改<asp:repeater>中每行使用的itemTemplate?

现有代码使用an asp:repeater来构建HTML表.(强调现有设计).这是生成表的一些部分伪代码:

<asp:repeater OnItemDataBound="ItemDataBound" ... >

   <headertemplate>
      <table>
         <thead>
            <tr>
               <td>Date</td>
               <td>Type</td>
               <td>Action</td>
            </tr>
         </thread>
   </headertemplate>

   <itemtemplate>
      <tr>
         <td><%# GetTextForThis((MyItem)Container.DataItem) %></td>
         <td><%# GetTextForThat((MyItem)Container.DataItem) %></td>
         <td><%# GetTextForTheOther((MyItem)Container.DataItem) %></td>
      </tr>
   </itemtemplate>

   <footertemplate>
         </tbody>
      </table>
   </footertemplate>

</asp:repeater>
Run Code Online (Sandbox Code Playgroud)

但现在需要(某些)项目以不同方式显示,并且需要使用a来完成COLSPAN=3,并且整个项目将是一个单元格:

   <itemtemplate>
      <tr>
         <td colspan="3">
            <img src="<%# GetImageSrcForFoo((MyItem)Container.DataItem) %>
            <a href="<%# GetHrefForFoo((MyItem)Container.DataItem) %>
         </td>
      </tr>
   </itemtemplate>
Run Code Online (Sandbox Code Playgroud)

鉴于:

  • 该页面使用转发器来构建HTML表
  • 设计需要一些表行来跨列

我怎样才能做到这一点?

我希望有类似的东西:

   <itemtemplate id="thisThatTheOtherItemTemplate">
      <tr>
         <td><%# GetTextForThis((MyItem)Container.DataItem) %></td>
         <td><%# GetTextForThat((MyItem)Container.DataItem) %></td>
         <td><%# GetTextForTheOther((MyItem)Container.DataItem) %></td>
      </tr>
   </itemtemplate>


   <itemtemplate id="fooItemTemplate">
      <tr>
         <td colspan="3"> …
Run Code Online (Sandbox Code Playgroud)

asp.net

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

如何声明特殊XML模式(XSD)案例

我需要你的帮助来定义XML模式中的特殊情况:包含两个元素的序列:'x'和'y',而:

  • <x> 元素在序列中可以显示0到未绑定的时间

  • <y> 元素在序列中可以出现0到1次

  • <x>和<y>位置可以在任何地方 - 也就是说,可以将未绑定的时间作为<x>元素,然后是单个<y>元素,然后取消绑定<x>元素.

这个问题的XML示例:

示例#1

<x>stuff</x>
<y>stuff</y>
<x>stuff</x>
Run Code Online (Sandbox Code Playgroud)

例#2

<y>stuff</y>
<x>stuff</x>
<x>stuff</x>
Run Code Online (Sandbox Code Playgroud)

例#3

<x>stuff</x> 
<x>stuff</x>
<y>stuff</y>
<x>stuff</x>
Run Code Online (Sandbox Code Playgroud)

谢谢!

xml xsd

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

ASP.NET:将一个XmlDocument保存到Response.OutputStream是否符合编码?

我想将一个XmlDocument对象的xml发送到HTTP客户端,但我担心建议的soltuion可能不会遵守Response已设置使用的编码:

public void ProcessRequest(HttpContext context)
{
   XmlDocument doc = GetXmlToShow(context);

   context.Response.ContentType = "text/xml";
   context.Response.ContentEncoding = System.Text.Encoding.UTF8;
   context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
   context.Response.Cache.SetAllowResponseInBrowserHistory(true);

   doc.Save(context.Response.OutputStream);
Run Code Online (Sandbox Code Playgroud)

}

如果我将编码更改为其他内容,例如Unicode,该怎么办?

public void ProcessRequest(HttpContext context)
{
   XmlDocument doc = GetXmlToShow(context);

   context.Response.ContentType = "text/xml";
   context.Response.ContentEncoding = System.Text.Encoding.Unicode;
   context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
   context.Response.Cache.SetAllowResponseInBrowserHistory(true);

   doc.Save(context.Response.OutputStream);
}
Run Code Online (Sandbox Code Playgroud)

请问Response.OutputStream翻译多数民众赞成被写入到它在运行中的二进制数据,并使其Unicode的?

或者Response.ContentEncoding只是提供信息?

如果ContentEncoding只是提供信息,那么以下文本字符串将返回什么内容编码?

context.Response.ContentEncoding = System.Text.Encoding.Unicode;
context.Response.Write("Hello World");

context.Response.ContentEncoding = System.Text.Encoding.UTF8;
context.Response.Write("Hello World");

context.Response.ContentEncoding = System.Text.Encoding.UTF16;
context.Response.Write("Hello World");

context.Response.ContentEncoding = System.Text.Encoding.ASCII;
context.Response.Write("Hello World");

context.Response.ContentEncoding = System.Text.Encoding.BigEndianUnicode; …
Run Code Online (Sandbox Code Playgroud)

xml asp.net unicode xmldocument

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

Delphi 5:如何暂停锚布局?

有没有办法暂停表单上的所有锚定控件暂时移动或调整大小?即:

procedure ScaleFormBy(AForm: TForm; n, d: Integer);
begin
    AForm.SuspendAnchors();
    try
       AForm.ScaleBy(n, d);
    finally
       AForm.ResumeAnchors();
    end;
end;
Run Code Online (Sandbox Code Playgroud)

我需要这样做,因为我正在打电话

AForm.ScaleBy(m, d);
Run Code Online (Sandbox Code Playgroud)

哪个不能正确处理锚定控件.(它将左侧+右侧或顶部+底部锚定控件推离窗体边缘.

注意:我想禁用Anchors,而不是Alignment.

delphi layout user-interface fonts

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

SQL Server:如何在查询分析器中中止一系列批处理?

我有一系列由特殊的查询分析器批处理分隔符关键字分隔的T-SQL语句:

GO
Run Code Online (Sandbox Code Playgroud)

如果一个批次失败,我需要查询分析器不尝试后续批次 - 我希望它停止处理一系列批次.

例如:

PRINT 'This runs'
go

SELECT 0/0, 'This causes an error'
go

PRINT 'This should not run'
go
Run Code Online (Sandbox Code Playgroud)

输出:

This runs
Server: Msg 8134, Level 16, State 1, Line 2
Divide by zero error encountered.
This should not run
Run Code Online (Sandbox Code Playgroud)

可能?


更新

实际使用中的一个例子可能是:

 sp_rename 'Shelby', 'Kirsten'
 go

 DROP VIEW PeekAView
 go

 CREATE VIEW PeekAViewAS 
 SELECT * FROM Kirsten
 go
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2005 sql-server-2000 query-analyzer

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

帮助驱动程序许可证号验证正则表达式

我正在尝试验证我正在制作的表单的驾驶执照.我试图使用一个正则表达式.

  1. 最大长度为9个字符
  2. 仅限字母数字字符
  3. 必须至少有4个数字字符
  4. 必须不超过2个字母字符
  5. 第三个和第四个字符必须是数字

我是正则表达式的新手我正在谷歌搜索试图解决它.对此的帮助将不胜感激.

c# regex

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

支持链接/共享文件的源代码控制产品?

我们感兴趣的是从支持共享或链接文件概念的源代码控制系统转移.

共享文件是指:在一个项目中修改的文件,自动更新在使用每一个其他项目改变同一文件.如果没有开发人员不得不请求它,反向集成它,请求它,甚至想要它,它都可以做到这一点.

我们试图查看是否有其他常用的源控制系统能够满足我们的需求,并包括链接或共享文件.我的有限研究表明:

  • Team Foundation Server不支持共享文件
  • Subversion不支持共享文件(包括外部)
  • CVS不支持共享文件(包括模块)

还要别的吗?(除了我们目前的源代码控制产品,显然)

参考

svn cvs version-control tfs visual-sourcesafe

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

Win32:如何在窗外画画?

看一下Windows tooltips类提示窗口,我看到它在提示窗口的实际矩形之外绘制了它的阴影.

使用SpyXX - 我可以获得工具提示的窗口rect和类样式:

Rectangle:     (440, 229)-(544, 249), 104x20
Restored Rect: (440, 229)-(544, 249), 104x20
Client Rect:   (0, 0)-(104, 20), 104x20
Run Code Online (Sandbox Code Playgroud)

您会注意到,您看到的投影实际上位于正在绘制的窗口之外.我怎么能画外一个影子在我的窗口,而被外界我的窗口?

注意:阴影不是使用标准CS_DROPSHADOW类样式绘制的.我已通过实验证实了这一点,并且还可以在SpyXX中看到窗口的类样式; 它不使用CS_DROPSHADOW:

Windows Styles:     94000001

    WS_POPUP        80000000
    WS_VISIBLE      10000000
    WS_CLIPSIBLINGS  4000000
    TTS_ALWAYSTIP          1

Extended Styles:    00080088

    WS_EX_LAYERED      80000
    WS_EX_TOOLWIN         80
    WS_EX_TOPMOST          8
Run Code Online (Sandbox Code Playgroud)

那我怎么能在窗外画画?

注意:尝试在桌面上绘制DC已经完成.来自Greg Schechter的重定向GDI,DirectX和WPF应用程序:

从屏幕上绘图和阅读 - Baaaad!

最后,由于我们处于重定向主题,一个特别危险的做法是写入屏幕,通过使用GetDC(NULL)并写入,或尝试执行XOR橡皮带线等.有两个写入屏幕的重要原因很糟糕:

它很昂贵...写入屏幕本身并不昂贵,但它几乎总是伴随着从屏幕读取,因为在写入屏幕时,通常会执行读取 - 修改 - 写入操作,如XOR.从视频内存表面读取非常昂贵,需要与DWM同步,并停止整个GPU管道以及DWM应用程序管道.
这是不可预测的......如果你以某种方式设法到达实际的主要部分并写入它,那么你写入主数据库的内容将保留在屏幕上的时间就不可预测.由于UCE不知道它,它可能在下一帧刷新中被清除,或者它可能持续很长时间,这取决于屏幕上需要更新的其他内容.(我们实际上不允许直接写入主数据库,因为这个原因......例如,如果您尝试访问DirectDraw主数据库,DWM将关闭,直到访问应用程序退出)

winapi layered-windows ws-ex-layered dropshadow

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

SQL Server:如何在COMMIT之前忽略引用完整性?

我有一个过程将行从一个数据库移动到另一个数据库.由于某些循环外键引用链,我无法从旧数据库中删除行,也无法将它们插入到新数据库中.

由于整个操作发生在事务1中,我希望SQL Server在我调用之前忽略引用完整性故障COMMIT TRANSACTION.

例如2:

   Table: Turboencabulators         Table: Marselvanes
   =========================        =======================
PK TurboencabulatorID int    /-> PK MarselvaneID       int
^  MarselvanesID      int --/       HasGrammeter       bit
|                                   PantametricFan     varchar(50)
+-------------------------------    TurboencabulatorID int
Run Code Online (Sandbox Code Playgroud)

如果我尝试在新表中插入turboencabulator,它将失败,而marselvane已经存在.撤销订单也有同样的问题.

尝试删除旧行时,我无法删除其中一行,直到另一行被删除.

我已经尝试过做一个n阶段系统,其中所有行都插入了外键约束设置为null的任何列.然后我更新所有插入的行,放置正确的缺失值.然后,为了删除源行,我将关闭受FK影响的所有列,然后删除实际行.3

我真正喜欢的是只做我的T-SQL操作,并让SQL Server在我尝试调用commit之前不告诉我.

笔记

1分布式
2假设
3假设我不再做了

sql-server sql-server-2000 foreign-keys data-integrity

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

SQL Server:按时间戳聚类; 优点缺点

我在SQL Server中有一个表,我希望将插入添加到表的末尾(而不是将它们插入中间的聚类键).这意味着我希望按一些列聚集的表不断增加.

这可以通过在datetime列上进行聚类来实现:

CREATE TABLE Things (
    ...
    CreatedDate datetime DEFAULT getdate(),
    [timestamp] timestamp,        

    CONSTRAINT [IX_Things] UNIQUE CLUSTERED (CreatedDate)
)
Run Code Online (Sandbox Code Playgroud)

但我不能保证两个Things人不会有同一时间.因此,日期时间列无法真正实现我的要求.

我可以添加一个虚拟标识 int列,并在其上添加集群:

CREATE TABLE Things (
    ...
    RowID int IDENTITY(1,1),
    [timestamp] timestamp,        

    CONSTRAINT [IX_Things] UNIQUE CLUSTERED (RowID)
)
Run Code Online (Sandbox Code Playgroud)

但你会发现我的桌子已经成了一个timestamp专栏; 保证单调增加的列.这正是我想要的候选群集密钥的特征.

所以我将表聚集在rowversion(又名timestamp)列上:

CREATE TABLE Things (
    ...
    [timestamp] timestamp,        

    CONSTRAINT [IX_Things] UNIQUE CLUSTERED (timestamp)
)
Run Code Online (Sandbox Code Playgroud)

我没有添加虚拟标识 int列(RowID)来确保订单,而是使用我已有的.

我正在寻找的是为什么这是一个坏主意的想法; 以及其他更好的想法.

注意:社区维基,因为答案是主观的.

sql-server timestamp rowversion clustered-index

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