我正在开发一个WinForms应用程序(.Net 3.5,没有WPF),我希望能够在数据绑定DataGridView中显示外键查找.
这种关系的一个例子是我有一个OrderLines表.订单行与产品和产品具有外键关系,而产品和产品又与ProductTypes具有外键关系.
我想要一个数据绑定DataGridView,其中每一行代表一个订单行,显示该行的产品和产品类型.
用户可以直接向网格添加或编辑订单行,并从comboBoxColumn中为订单行选择产品 - 然后应该在同一行中更新producttype列,显示所选产品的产品类型.
到目前为止,我发现的最接近的一个很好的拟合是引入一个表示订单行的域对象,然后将DataGridView绑定到这些订单行的集合.然后,我将属性添加到公开产品和产品类型的订单行对象,并引发相关的notifypropertychanged事件以使所有内容保持最新.在我的订单行存储库中,我可以将此订单行对象与数据库中的三个表之间的映射连接起来.
这适用于数据绑定方面,但必须手动编写存储库中所有OR映射的代码似乎很糟糕.我认为nHibernate能够帮助完成这个连接但是我正在努力通过所有外键的映射 - 它们似乎工作正常(外键查找订单行的产品根据外键创建正确的产品对象)直到我尝试进行数据绑定,我无法获取数据绑定id列来更新我的产品或producttype对象.
我的一般方法是否在正确的球场?如果是,那么映射问题的解决方案是什么?
或者,是否有更好的数据绑定行解决方案,包括我甚至没有考虑过的外键查找?
我尝试使用打开一个新窗口
window.open("lookup.htm","lookupWin", "height=400,width=500,resizable=false");
Run Code Online (Sandbox Code Playgroud)
它在IE中工作正常,但在FF中,弹出窗口仍可调整大小.如何在FF中禁用此调整大小?
所以我有这个C#列表:
List<DatsWussup.Models.JQGridMessage> gridMessages = new List<DatsWussup.Models.JQGridMessage>();
Run Code Online (Sandbox Code Playgroud)
每个JQGridMessage
都有一个叫做的属性age
.按年龄(最小的第一个)排序此列表的最快捷,最有效的方法是什么.年龄是一个int.
谢谢!
在我的应用程序中,我将DataGridView数据导出到Excel工作表现在我想将组合框和文本框选择的值传递给excel工作表,我必须将我的Excel工作表的标题作为我的Windows应用程序的报告,我该怎么做?
谁可以帮我这个事?
我有将datagridview数据导出到excel的代码:
private void btnexcel_Click(object sender, EventArgs e)
{
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.ApplicationClass();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
int i = 0;
int j = 0;
for (i = 0; i <= dataGridView1.RowCount - 1; i++)
{
for (j = 0; j <= dataGridView1.ColumnCount - 1; j++)
{
DataGridViewCell cell = dataGridView1[j, i];
xlWorkSheet.Cells[i + 1, j + 1] = cell.Value;
}
}
xlWorkBook.SaveAs("csharp.net-informations.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, …
Run Code Online (Sandbox Code Playgroud) 我使用C#的原生EXE是什么样的,我想编译一个基本的EXE,它将在不需要.net框架的情况下运行.我听说ngen.exe可以任何人给我ngen.exe的例子或任何更好的方法.此外,我将为生成的应用程序生成运行时如何将其放入应用程序中,以便使用我的语言的任何人都可以使用其功能.
我在表单上有一个DataGridView.
我想通过按删除键从网格中删除行,但删除键似乎已经死了,直到我进入CellEditMode
.
如果我输入CellEditMode
然后删除键工作,但显然只是删除单元格内容,而不是删除行.
DataGridView已经AllowUserToDeleteRow = true
和网格未绑定.
我有其他网格,这个功能正常,但看不出差异.
我正在使用Windows Azure的评估订阅.
有时,当我尝试访问CloudBlobContainer(如GetPermissions())上的方法时,Web服务会挂起.添加一些日志记录后,我看到"底层连接已关闭:无法为SSL/TLS安全通道建立信任关系.根据验证过程,远程证书无效." 在我的日志中.
我在使用CreateIfNotExists()时也遇到过这种情况.
可能是什么导致了这个?
我最近从版本1.7升级到存储客户端库的版本2但仍然看到此行为.
DDD的其中一个租户是不允许您的对象进入无效状态.对我来说,这意味着不应该有一个公共的无参数构造函数,因为99%的时候它将成为无效状态的对象.
这是前进的好方法吗?当你想要快速上课时,它就变成了一个巨大的PITA.
您是否可以覆盖命名实例的构造函数参数,似乎您只能为默认实例执行此操作.
我想要做:
ObjectFactory.With("name").EqualTo("Matt").GetNamedInstance<IActivity>("soccer");
Run Code Online (Sandbox Code Playgroud) 我正在尝试向我的BitMap添加一个事件监听器.Tile扩展了gameProps,扩展了BitMap.我尝试使用addEventListener.那不起作用.但是Adobe文档说Bitmap有一个addEventListener对象.
package {
import flash.display.BitmapData;
import flash.events.*;
import flash.events.MouseEvent;
import flash.geom.Rectangle;
import flash.geom.Point;
public class Tile extends gameProps {
public var tileNum:Number = 0;
public function Tile(tileNumber:Number):void
{
tileNum = tileNumber;
addEventListener(MouseEvent.MOUSE_OVER, respond);
}
public function respond(e:MouseEvent):void
{ trace("HELLO");
}
}
}
Run Code Online (Sandbox Code Playgroud) c# ×5
datagridview ×2
winforms ×2
.net ×1
actionscript ×1
azure ×1
compilation ×1
constructor ×1
excel ×1
exe ×1
export ×1
firefox ×1
flash ×1
javascript ×1
list ×1
native ×1
popup ×1
sorting ×1
structuremap ×1
windows ×1