最近一直都在看Vs2010 wpf的东西,在使用DataGrid(在2010中DaTaGrid已经内置在.net 4.0)的时候,遇到一个很麻烦的事情。
放在自定义的模板内的控件,怎么都找不到,今天看了一个Silverlight的Demo,发现原来可以这样找。
|
WPF
<DataGrid AutoGenerateColumns="False" Height="259" HorizontalAlignment="Left" Margin="12,58,0,0" Name="MainGrid" VerticalAlignment="Top" Width="604"> <DataGrid.Columns> <DataGridTemplateColumn Header="查询项目"> <DataGridTemplateColumn.CellTemplate> <DataTemplate > <!--<ComboBox x:Name="cb_CurrentSection" SelectedValue="{Binding Path=CurrentSection,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Text="{Binding Path=CurrentSection.SectionChineseName}" ItemsSource="{Binding Path=SectionList}" DisplayMemberPath="SectionChineseName"/>--> <ComboBox x:Name="cb_CurrentSection" SelectedValue="{Binding Path=CurrentSection.SectionChineseName}" SelectedItem="{Binding Path=CurrentSection,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" SelectedValuePath="SectionChineseName" ItemsSource="{Binding Path=SectionList}" DisplayMemberPath="SectionChineseName"/> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn>
</DataGrid.Columns> </DataGrid>
.cs代码
/// <summary> /// 找出DataGrid自定义模板中的控件 /// </summary> /// <param name="myDataGrid">DataGrid控件</param> /// <param name="ColumnIndex">列序号</param> /// <param name="RowIndex">行序号</param> /// <param name="ControlName">控件名</param> /// <returns></returns> public object FindName(DataGrid myDataGrid, int ColumnIndex, int RowIndex, string ControlName) { FrameworkElement item = myDataGrid.Columns[ColumnIndex].GetCellContent(myDataGrid.Items[RowIndex]); DataGridTemplateColumn temple = (MainGrid.Columns[ColumnIndex] as DataGridTemplateColumn); return temple.CellTemplate.FindName(ControlName, item); }
private void button4_Click(object sender, RoutedEventArgs e) { ComboBox cb = FindName(MainGrid, 0, 0, "cb_CurrentSection") as ComboBox; MessageBox.Show(cb.SelectedValue.ToString()); } |
不知道各位大哥有没更好的方法。我在MSDN上面搜到的方法都不行,不知道是不是到了2010方法变了。
最近在做一个项目,频繁使用到一些SQL语句的构造,如批量删除 多条件查询(对于查询结果,有时候要用多个输入框来表示限制条件)。对于这些操作,如果常规地手动构造,语句特长,又容易出错,管理起来并不是很好。
特别写了一个类,总结了一下,通常下列的方法,相对来说,逻辑会清晰些。不知道各位大侠平时对复杂的SQL语句构造,有没一些比较完善的构造方法。现在方法还是比较少,希望大家能多多指点。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Collections;
using System.Text;
/// <summary>
///用于SQL语句构造的类,方便我们构造各种SQL语句条件
/// </summary>
public class SQL_tools
{
public SQL_tools()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 构造某个数据列在一系列的ID号中 如: MyID in (1,3,4,5)
/// </summary>
/// <param name="columnName">列名 MyID</param>
/// <param name="NoteBookIDArray">列名的数字序列 如:1 3 4 5</param>
/// <returns></returns>
public static string ColumnInNum(string columnName, ArrayList NoteBookIDArray)
{
string sql = "";
if (NoteBookIDArray.Count > 0)
{
string NoteBookIDList = "";
if (NoteBookIDArray.Count == 1)
{
NoteBookIDList = "(" + NoteBookIDArray[0].ToString() + ")";
}
if (NoteBookIDArray.Count > 1)
{
for (int i = 0; i < NoteBookIDArray.Count; i++)
{
if (i == 0)
{
NoteBookIDList = "(" + NoteBookIDArray[0].ToString();
}
else
{
NoteBookIDList = NoteBookIDList + "," + NoteBookIDArray[i].ToString();
}
}
NoteBookIDList = NoteBookIDList + ")";
}
sql = " " + columnName + " in " + NoteBookIDList;
}
return sql;
}
/// <summary>
/// 根据哈希表存放字段及字段名进行模糊查询
/// </summary>
/// <param name="KeyList">哈希表的键存放“字段名” 值存放“关键字”</param>
/// <returns></returns>
public static string GetHashtableList(Hashtable HashKeyList)
{
StringBuilder strSql = new StringBuilder();
if (HashKeyList.Count > 0)
{
int i = 0;
foreach (DictionaryEntry myHashKey in HashKeyList)
{
if (i > 0)
{
strSql.Append(" and ");
}
strSql.Append(myHashKey.Key.ToString());
strSql.Append(" like '%" + myHashKey.Value.ToString() + "%' ");
i++;
}
}
return strSql.ToString();
}
/// <summary>
/// 拼接各个条件的SQL限制语句
/// </summary>
/// <param name="Require">限制条件数组 它的头和尾都不存在and</param>
/// <returns></returns>
public static string JoinRequire(string[] Require)
{
string sql = "";
int count = 0;
for (int i = 0; i < Require.Length; i++)
{
if (Require[i].Trim() != "")
{
if (count == 0)
{
sql = Require[i];
}
else
{
sql = sql + " and " + Require[i];
}
count++;
}
}
return sql;
}
}
摘要: 最近在写一个类库,想把ASP.NET 管理用户和权限的那些管理的功能页面参照(ASP.NET 配置)也实现出来,不用老在VS 2005/VS 2008 点(ASP.NET 配置),这样以后用起来就方便许多。简单写了一下SQL版本的,后来把类库迁移到Access的实例,发现一直提示出错。后来一句一句的分析,执行SQL语句的时候就出问题。觉得很奇怪,一样的语句,为什么在SQL的实例就可以,在Acces...
阅读全文
最近做了一个 在线文件管理程序,支持浏览服务器所有文件(不单单是站点的文件)。把它传到虚拟空间中,就可以很方便地把服务的各个目录和内容都遍历出来,或者选择下载。嘿嘿,大家不要利用它做坏事哦。这个作为大家学习ASP.NET 文件操作用的。
WebFile1.0 系统介绍:
1、本系统由ASP.NET 3.5编写,在线管理文件包括整个服务器文件遍历,下载!!!!
2、本系统代码完全由手动编写,不产生任何一丁点的HTML代码冗余。
因为是第一版,许多功能都有待完善,不过,请各位把使用后的情况反馈一下,谢谢啦!
WebFile 1.0 下载
使用说明:
1、把WebFile.RAR解压,把Bin里面的两个链接库WebDirFile.dll WebFile.dll 放在网站根目录的Bin目录上,非常重要。。。。
2、运行2.aspx 就可以了
这个程序时在Vs 2008 sp1下开发的,所以要ASP.NET 3.5的空间才支持运行。
WebFile1.0 说明
例如:遍历D盘文件

摘要: 今天看了一天Asp.net 正则表达式,大概明白怎么了。利用这个东西,我们可以分析文章中的Html,利用这个结果,方便以后寻找文件管理或者删除。代码可能不一定写得很好,请大家多提意见。提取图片类型[代码]提取下载类型[代码]页面代码:[代码]后台代码:[代码]附正则表达式的限定符正则表达式一 限定符: 描述:允许特定字符或字符集自身重复出现的次数,作用范围是限制符左边第一个字符或者字符集 符号作用...
阅读全文
摘要: 表名:aspnet_Applications说明:保存应用程序信息 字段名类型属性说明ApplicationNamenvarchar(256)应用程序名LoweredApplicationNamenvarchar(256)小写的应用程序名ApplicationIduniqueidentifierPK应用程序的id, GUID值Descriptionnvarchar(256)nullable应用程序...
阅读全文
摘要: 今天看了一天Asp.net 正则表达式,大概明白怎么了。利用这个东西,我们可以分析文章中的Html,利用这个结果,方便以后寻找文件管理或者删除。代码可能不一定写得很好,请大家多提意见。提取图片类型[代码]提取下载类型[代码]页面代码:[代码]后台代码:[代码]附正则表达式的限定符正则表达式一 限定符: 描述:允许特定字符或字符集自身重复出现的次数,作用范围是限制符左边第一个字符或者字符集 符号作用...
阅读全文
摘要: 本文解释使用SqlDataReader关闭数据库连接的问题:例如把数据库的操作都封装到了一个类中,但SqlDataReader只有在读取完毕时才能关闭数据库,这样类中就不能关闭书库库连接。在函数中关闭,如果在函数中就关闭了会提示‘阅读器关闭时Read的尝试无效’ .这点微软当然想到了。用着个方法dr = Cmd.ExecuteReader(CommandBehavior.C...
阅读全文
摘要: 我想,我应该写点东西了。否则,太颓废了。我要写网站了。
阅读全文
摘要: 不知道以后的路,会过得怎样,加油吧,为自己打气.
阅读全文