我正在使用以下代码将Excel转换为使用EPPlus的数据表:
public DataTable ExcelToDataTable(string path)
{
var pck = new OfficeOpenXml.ExcelPackage();
pck.Load(File.OpenRead(path));
var ws = pck.Workbook.Worksheets.First();
DataTable tbl = new DataTable();
bool hasHeader = true;
foreach (var firstRowCell in ws.Cells[1, 1, 1, ws.Dimension.End.Column])
{
tbl.Columns.Add(hasHeader ? firstRowCell.Text : string.Format("Column {0}", firstRowCell.Start.Column));
}
var startRow = hasHeader ? 2 : 1;
for (var rowNum = startRow; rowNum <= ws.Dimension.End.Row; rowNum++)
{
var wsRow = ws.Cells[rowNum, 1, rowNum, ws.Dimension.End.Column];
var row = tbl.NewRow();
foreach (var cell in wsRow)
{
row[cell.Start.Column - 1] …Run Code Online (Sandbox Code Playgroud) 我想创建一个布局,我想在左边显示图像,在右边显示内容.当内容滚动时,图像应保持不变.
我正在使用的CSS:
<style type="text/css">
#page-container
{
margin:auto;
width:900px;
background-color:Black;
}
#header
{
height:150px;
width:650px;
}
#main-image
{
float:left;
width:250px;
height:500px;
background-image:url('../images/main-image.png');
position:fixed;
}
#content
{
margin-left:250px;
padding:10px;
height:250px;
width:630px;
background-color:Teal;
}
</style>
Run Code Online (Sandbox Code Playgroud)
HTML:
<div id="page-container">
<div id="header"><img src="someimagelink" alt="" /></div>
<div id="main-image"></div>
<div id="content"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
很多时间在这个网站上,我已经理解了背景附件:固定图像在整个视口中的位置,而不是它应用的元素.
我的问题是如何创建这种布局?
我不想将该图像作为背景图像,就像窗口调整大小一样,它可能会被隐藏.如果窗口大小小于900px(我的页面宽度),我想要滚动条出现,以便可以随时查看图像.
这个代码会发生这种情况,但我希望图像从我的元素开始.
我该怎么做呢?
提前致谢 :)
编辑:
我接受了建议并添加了一个位置:固定属性为#main-image.使用如上所示的HTML和CSS.现在,我还想修复标题,使其不移动.基本上,只有我的内容部分应该滚动.但是,如果我添加一个位置:固定到标题,我的#main-image和#content现在位于我的标题之上.如果我向#main-image添加一个margin-top:150px(因为我的标题高度是150px),它可以正常工作并适当地向下移动.但是如果我在#content中添加一个margin-top:150px,我的标题会向下移动150px并且仍然位于我的#content之上.有人可以解释为什么会这样吗?提前致谢 :)
我正在使用MVVM创建一个WPF应用程序.我有一个文本框,它绑定到我的ViewModel类型的属性,double默认值为0.0.如果我现在在文本框中输入文本值(例如,abc),则在失去焦点时,文本框会突出显示,表示值不正确.但是,用户仍然可以继续并单击"提交"以调用ViewModel命令.由于Text文本框的属性绑定到doubleViewModel中的类型属性,因此ViewModel属性包含默认值0.0,并且我无法找到用户输入的文本.
因此,我无法确定用户是否实际输入的值为0或输入是否错误.如何正确执行此验证?我应该将它绑定到string属性,以便我可以获取输入的文本,并尝试将其解析为一个double值,以查看输入是否正确?或者有更好的方法吗?
<TextBox HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" Text="{Binding DoubleProperty}" VerticalAlignment="Top" Width="120"/>
Run Code Online (Sandbox Code Playgroud) 根据MSDN,该new()约束用于确保类型参数必须具有公共无参数构造函数。但是,请考虑下面给出的示例(取自同一页面)。
public class Employee
{
public Employee(string name, int id)
{
Name = name;
ID = id;
}
public string Name { get; set; }
public int ID { get; set; }
}
class EmployeeList<T> where T : Employee, new()
{
}
Run Code Online (Sandbox Code Playgroud)
此处,该Employee类型没有无参数/默认构造函数,但此代码编译成功。有人可以详细说明这个约束的用法以及为什么它有效吗?
我正在使用ng-repeat指令创建一个网格.我需要能够编辑内联,这是我使用这里提供的相同的想法实现的.我现在还需要能够通过单击按钮向该网格添加新行.我这样做是通过在每次单击按钮时将一个新条目推送到我的集合中,这会在我的网格中插入一个新行.我希望在可编辑模式下添加此新行.但是,要做到这一点,我需要能够在推送新行时动态设置editMode属性true.我怎样才能做到这一点?
JSFiddle:http://jsfiddle.net/Thw8n/69/
javascript angularjs angularjs-directive angularjs-ng-repeat
c# ×3
.net ×1
angularjs ×1
attachment ×1
background ×1
css ×1
epplus ×1
excel ×1
fixed ×1
generics ×1
html ×1
javascript ×1
mvvm ×1
wpf ×1
xaml ×1