我有一个dataGridView有3列:SystemId,FirstName,LastName使用数据库信息绑定.我想强调某一行,我会用它来做:
dataGridView1.Rows[????].Selected = true;
Run Code Online (Sandbox Code Playgroud)
然而,行ID我不知道并且bindingsource一直在变化,因此第10行在一个实例中可能是"John Smith"但在另一个实例中甚至不存在(我有一个过滤器根据用户输入的内容过滤掉源,因此输入在"joh"中会产生名字中包含"joh"的所有行,因此我的列表可以从50个名称变为3个单击中的3个.
我想找到一种方法,我可以根据SystemId和相应的数字选择一行.我可以使用以下方法获取系统ID:
systemId = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["SystemId"].Value.ToString();
Run Code Online (Sandbox Code Playgroud)
现在我只需要将它应用于行选择器.类似于dataGridView1.Columns ["SystemId"] .IndexOf(systemId)但不起作用(这种方法也不存在).非常感谢任何帮助.
要使用我们简单的值,在下拉列表中查找项目(并选择它)
dropdownlist1.Items.FindByValue("myValue").Selected = true;
Run Code Online (Sandbox Code Playgroud)
如何使用部分值找到项目?假设我有3个元素,它们分别具有值"myValue one","myvalue two","myValue three".我想做点什么
dropdownlist1.Items.FindByValue("three").Selected = true;
Run Code Online (Sandbox Code Playgroud)
并让它选择最后一项.
我在尝试创建大型 PDF 文件时遇到问题。基本上我有一个字节数组列表,每个数组都包含一个字节数组形式的 PDF。我想将字节数组合并到一个 PDF 中。这对于较小的文件(2000 页以下)非常有效,但是当我尝试创建 12,00 页的文件时,它崩溃了)。最初我使用的是 MemoryStream,但经过一番研究后,一个常见的解决方案是使用 FileStream。所以我尝试了文件流方法,但得到了类似的结果。该列表包含 3,800 条记录,每条包含 4 页。MemoryStream 在大约 570 条记录后爆炸。FileStream 在大约 680 条记录后爆炸。代码崩溃后当前文件大小为 60MB。我究竟做错了什么?这是我的代码,代码在“copy.AddPage(curPg);”上崩溃 指令,在“for(”循环内。
private byte[] MergePDFs(List<byte[]> PDFs)
{
iTextSharp.text.Document doc = new iTextSharp.text.Document();
byte[] completePDF;
Guid uniqueId = Guid.NewGuid();
string tempFileName = Server.MapPath("~/" + uniqueId.ToString() + ".pdf");
//using (MemoryStream ms = new MemoryStream())
using(FileStream ms = new FileStream(tempFileName, FileMode.Create, FileAccess.Write, FileShare.Read))
{
iTextSharp.text.pdf.PdfCopy copy = new iTextSharp.text.pdf.PdfCopy(doc, ms);
doc.Open();
int i = 0;
foreach (byte[] PDF in PDFs)
{
i++; …
Run Code Online (Sandbox Code Playgroud) 我试图让孩子转发器的项目计数,但由于某种原因它不断上升为零.这是我的代码:父中继器是rptDays.儿童中继器是rptEditInfo.
protected void rptDays_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater rptEditInfo = (Repeater)e.Item.FindControl("rptEditInfo");
...
DateTime thisDay = (DateTime)e.Item.DataItem;
DataSet ds = new DataSet();
...
ds = **bind valid dataset to this variable**
rptEditInfo.DataSource = MRSTable;
rptEditInfo.DataBind();
}
Run Code Online (Sandbox Code Playgroud)
}
protected void rptEditInfo_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Header)
{
Repeater rpt2 = (Repeater)((Repeater)e.Item.Parent);
Repeater rpt1 = (Repeater)((Repeater)sender).Parent.FindControl("rptEditInfo");
int countTest1 = rpt2.Items.Count //always zero
int countTest2 = rpt1.Items.Count //always zero
}
} …
Run Code Online (Sandbox Code Playgroud) 我的.aspx页面中有一个脚本,它将信息发送到后端.cs页面.在大多数情况下,概念很简单,最差,除非数据太大.如何在不修改web.config的情况下增加"数据"变量的容量?请参阅下面的代码.
.ASPX
<script type="text/javascript">
$(document).ready(function () {
var note = "";
for (var i = 0; i < 200000; i++)
note = note + "x";
$.ajax({
type: "POST",
url: "GroupDetailsDisplayPlus.aspx/UpdateRecord",
data: "{note: \"" + note + "\"}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
var response = msg.d;
alert("success");
}
error: function (request, status, thrownError) {
//alert(request.thrownError); // short version
alert(request.responseText); // long version
}
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
.CS
[System.Web.Services.WebMethod]
public static string UpdateRecord(string …
Run Code Online (Sandbox Code Playgroud) 我有两个枚举器和一个采用枚举器的方法.它们被称为ABC和DEF,该方法称为TestMethod(Enum myEnum).代码如下:
public enum ABC
{
Zero,
One,
Two
};
public enum DEF
{
Zero,
One,
Two
};
public void TestEnum(Enum myEnum)
{
...
}
Run Code Online (Sandbox Code Playgroud)
TestEnum函数接受任何枚举器.如何测试传入的参数属于哪两个?我可以盲目地开始用try/catch铸造测试它,但是这很难看.这样做更清洁的方法吗?预先感谢您的任何帮助.
c# ×6
asp.net ×2
datagridview ×1
enums ×1
itext ×1
javascript ×1
jquery ×1
json ×1
web-services ×1
winforms ×1