我正在使用iTextSharp v5.3来构建一个PDF,其中包含一个或多个具有相同单元格但由于动态内容而可能会有不同高度的表格.目前,如果a PdfPTable
太大而无法放在当前页面上,则该表将被破坏,剩余的单元格数据将在下一页上结束.有没有办法告诉iTextSharp,如果表格不合适,将整个内容放在下一页?
我已经尝试过搞乱SplitRows
,SplitLate
但他们没有达到预期的效果.我还尝试在添加PdfPTable
到文档后进行一些计算,但无法弄清楚如何在页面上获取"光标位置".我是否需要在循环中跟踪当前页面的高度并自行完成所有计算?
嘿伙计.我正在努力使用与"单页/页面范围"文本框中的输入匹配的正则表达式,这意味着用户可以以[lowerBound] - [upperBound]格式输入单个整数或整数范围.例如:
一个正则表达式可以实现吗?
奖金
提前致谢.
我正在尝试使用Linq-to-Entities编写CompiledQuery,它将替换采用两个数组(在本例中为逗号分隔的TEXT)参数的存储过程.本质上,SQL是这样的:
*Stored Proc definition*
@ArrayParm1 TEXT,
@ArrayParm2 TEXT
-- etc.
SELECT [fieldList]
FROM someTable
WHERE someTable.Field1 IN (SELECT * FROM dbo.fncCSVToTable(@ArrayParm1))
AND someTable.Field2 IN (SELECT * FROM dbo.fncCSVToTable(@ArrayParm2))
Run Code Online (Sandbox Code Playgroud)
dbo.fncCSVToTable
使用数组值创建单列临时表.
将其转换为已编译的Linq-to-Entities查询似乎并不困难:
public static Func<EntityContext, List<int>, List<string> IQueryable<EntityType>>
SomeQuery =
CompiledQuery.Compile((EntityContext context, List<int> arrayParm1,
List<string> arrayParm2) =>
from c in context.SomeTableEntities
where arrayParm1.Contains(c.Field1)
&& arrayParm2.Contains(c.Field2)
select new EntityType
{
//projection
});
Run Code Online (Sandbox Code Playgroud)
但是,我收到运行时错误,指出参数Func<>
不能是List,并且只支持标量参数.这对我来说很有意义,但我仍然觉得必须有一种方法可以在编译的查询中执行此操作.有没有人知道在L2E CompiledQuery中做任何方法List.Contains
或WHERE ... IN
输入功能?
在过去,我在创建看起来像这样的数据访问/存储库代码时,已经为简单的CRUD操作编写了单元测试:
using(var connection = new WhateverConnection(connectionString))
{
connection.Open();
using(var transaction = connection.BeginTransaction())
{
try
{
//test the CRUD operation
}
finally
{
//gets rid of any stuff created during the test
transaction.Rollback();
}
}
}
Run Code Online (Sandbox Code Playgroud)
今天我正在搞乱EF4 Code First,我意识到我不知道这个测试场景如何在Entity Framework词典中进行翻译.似乎,如果我打电话DbContext.SaveChanges()
,它会保存并提交,无论是否AcceptAllChanges()
被调用.即使使用ObjectContext
而不是DbContext
,我也无法弄清楚如何在不手动清理创建的任何模拟/测试对象的情况下重新创建这个简单的测试场景.我在MSDN上读过这篇文章,但TransactionScope
也没有真正的Rollback
类型方法.我是否使用TransactionScope
而且从不打电话Complete
?是否有其他方法或方式使用DbContext和/或ObjectContext以便在单元测试期间回滚?我是否需要使用EF4 Code First完全重新调整我对TDD的思考?
我正在使用jqGrid 4.3.2 inlineNav
选项.网格上的所有编辑都是使用loadonce: true
和本地完成的clientArray
.当用户完成编辑时,他们单击表单上的保存按钮,整个网格将发布到服务器.这在大多数情况下效果很好,但我遇到了一个奇怪的问题.如果用户添加新行然后在按Enter键确认编辑或取消选择新添加的行之前单击保存按钮,则即使saveRow
在发布和重新加载之前调用之后,内联导航器中的添加按钮仍将保持禁用状态.我已经尝试过resetSelection
并且restoreRow
在saveRow
通话结束后,但这些都没有奏效.我的保存代码:
$("#submitButton").click(function () {
$("#theGrid").jqGrid('saveRow', $("#selectedRowId").val(), false, 'clientArray');
if (!ValidateGridData())
return false;
var rowData = $("#theGrid").jqGrid('getRowData');
var dataToSend = JSON.stringify(rowData);
$.ajax({
url: '@Url.Action("UpdateGridData")',
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: dataToSend,
dataType: 'json',
async: false,
success: function (data, textStatus, jqXHR) {
$("#theGrid").jqGrid('setGridParam', { datatype: 'json' });
$("#theGrid").trigger('reloadGrid');
},
error: function (jqXHR, textStatus, errorThrown) {
alert('Error saving data: ' + textStatus + " " + errorThrown); …
Run Code Online (Sandbox Code Playgroud) 我的jQuery移动网站上有一个设置页面当用户点击保存按钮时,我更新服务器以获得3种不同的用户输入,即语言,货币,门槛
为了做到这一点,我做了3个单独的ajax调用(使用PUT).所以当一切都成功时,我会转到另一个页面,如果其中任何一个失败,我会留在同一页面上并显示错误消息.
问题是如果所有呼叫都成功,我只想切换页面,如果有任何错误,我想显示一条包含所有消息的警报(而不是3个separete警报窗口),所以我需要等待所有这些的结果调用.
在我使用的所有3个Ajax调用中实现这一点;
async:false
Run Code Online (Sandbox Code Playgroud)
我在所有这些调用成功方法中添加了一个布尔值;
success: function (data){
languageUpatesuccesful=true;
}
Run Code Online (Sandbox Code Playgroud)
然后是这样的事情;
if(languageUpatesuccesful){
make the next call to update currency..etc
}
Run Code Online (Sandbox Code Playgroud)
...
if(allsuccesful(){
changepage();
}
Run Code Online (Sandbox Code Playgroud)
因此,如果所有成功切换到另一个页面,我可以跟踪何时完成一个呼叫完成然后我进行下一个呼叫.
虽然这有效,但我认为这是一个可怕的解决方案,有没有办法通过使用async:true来实现这一点?
因为禁用异步ajac会冻结页面而我甚至无法显示动画,所以jQuery也不建议这样做.但是,我怎么知道这3个电话何时结束并根据结果采取行动?
我是使用Menubar插件进行导航的WordPress网站上的CSS新手.我已经能够改变我的CSS用于配色方案,居中和字体的东西,但我不能为我的生活弄清楚为什么围绕<ul>
菜单的div 在底部有额外的6个像素.我已经尝试在几个地方将边距设置为0,改变了line-height
...但没有任何作用.
您可以在此处查看该网站.我正在使用的主题是Twenty Eleven的孩子.这是(我认为)重要的CSS:
#access div {
margin: 0 0 0 0;
}
#access {
background: #773736;
clear: both;
display: block;
margin: 0 auto;
width: 100%;
text-align: center;
}
#access ul {
font-size: 13px;
list-style: none;
margin: 0 0 0 -0.8125em;
padding-left: 0;
display: inline-block;
font-weight: normal;
}
#access li {
float: left;
position: relative;
text-align: left;
}
#access a {
color: #eee;
display: inline-block;
line-height: 3.333em;
padding: 0 1.2125em;
text-decoration: none; …
Run Code Online (Sandbox Code Playgroud) 我对NHibernate相当新,并且在我的存储库类中遇到了一个奇怪的继承链问题.我一直在使用Gabriel Schenker的FAQ作为参考,并且按照他的例子,我一直在创建接口来定义"存储库"类中DAO操作的合同.我正在使用的数据模式相当广泛,过了一会儿我发现自己复制了很多代码.具体来说,在向基本接口添加通用"EntityType"参数后,Add,Update,Delete和"GetByID"方法完全相同.因此,例如,这将是存储库操作的最基本接口:
public interface IBasicRepository<EntityType> where EntityType : class
{
void Add(EntityType entity);
void Remove(EntityType entity);
void Update(EntityType entity);
EntityType GetByID<IDType>(IDType id);
}
Run Code Online (Sandbox Code Playgroud)
为简洁起见,我将从现在开始讨论Add方法.使用通用EntityType,实现都是相同的:
public void Add(EntityType entity)
{
using (ISession session = NHUtility.OpenSession())
{
using (ITransaction transaction = session.BeginTransaction())
{
session.Save(entity);
transaction.Commit();
}
}
}
Run Code Online (Sandbox Code Playgroud)
显然,重复键入相同的方法体(稍微改变类型)不仅令人讨厌,而且在我的书中设计不好.所以我创建了一个抽象基类,我将其称为RepositoryBase,它为Add()提供了实现.因为我使用的是抽象而不是接口,所以我为继承自RepositoryBase的类"打破了接口链",并且我也被迫做出任何派生抽象,即使使用接口看起来更"正确".使用这个蹩脚的小实体示例....
public class Entity1
{
public Guid ID { get; set; }
public String Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
......一个人不能这样做......
public interface IEntity1Repository : RepositoryBase<Entity1>
{
//Illegal!!!! Bad, naughty programmer!
} …
Run Code Online (Sandbox Code Playgroud) 我正在使用Ninject 3.0将服务层数据访问类注入我的控制器.我想在运行时将客户端的域用户ID添加到这些类,但无法弄清楚我应该使用哪种方法.目前我NinjectModule
看起来像这样:
public class NinjectBindModule : NinjectModule
{
public override void Load()
{
Bind<ISomeRepo>().To<SomeRepo>();
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题,分两部分真的是:
WithConstructorArgument
用来获取用户ID SomeRepo
,还是其他东西(属性?).我是否可以在绑定模块中执行此操作,还是必须在内核或控制器级别执行此操作?我有一个ASP.Net网站,将图像文件推送到客户端.由于我们不同的用户群的古怪需求,一些客户端工作站有一个ActiveX组件,他们需要在这个网站中使用它来操作这个图像,但由于成本,并非所有用户都有这种控制.我希望能够确定客户端是否安装了此ActiveX控件,然后根据此测试的结果编写标记脚本.
我一直在彻底探索Request对象,但没有发现任何我需要的东西.Request.Browser.ActiveXControls很高兴知道,但我需要进一步向下钻取.我应该关注另一个命名空间吗?这甚至可能吗?
提前致谢.
jquery ×2
activex ×1
ajax ×1
asp.net ×1
asp.net-mvc ×1
code-first ×1
css ×1
inheritance ×1
interface ×1
itextsharp ×1
javascript ×1
jqgrid ×1
linq ×1
nhibernate ×1
ninject ×1
pagination ×1
regex ×1
tdd ×1
transactions ×1