小技巧_杂记
1) 如何在DataGrid中添加对话框? 2007.10.8
private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
foreach(DataGridItem di in this.DataGrid1.Items)
{
if (di.ItemType==ListItemType.Item||di.ItemType==ListItemType.AlternatingItem||
di.ItemType==ListItemType.EditItem)
{
((LinkButton)di.Cells[3].Controls[0]).Attributes.Add
("onclick","return confirm('delete?');");
}
}
}
(可以通过调试看到当在设置了Footer以后DataGrid1.Items.Count>PageSize),一般情况下这么写就可以了
if (e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem||
e.Item.ItemType==ListItemType.EditItem)
{
((LinkButton)e.Item.Cells[3].Controls[0]).Attributes.Add
("onclick","return confirm('delete?');");
}
2) 将图片资源文件整合到DLL文件中 2007.10.8
1、新建一个类库,例如库名为 ResourcesLibrary;
2、添加引用 System.Drawing;
3、添加资源文件(添加--新建项--资源文件),例如文件名为 Resource1.resx;
4、添加图片(打开Resource1.resx,单击“添加资源”后的小三角,选择添加现有文件,选择需要作为资源的图片),例如添加了图片 Sunset.jpg
5、添加类,例如名为 GetImage.cs
namespace ResourcesLibrary
{
public class GetImage
{
public System.Drawing.Bitmap GetSunset()
{
return Resource1.Sunset;
}
}
}
6、UI层添加对类库的引用(ResourcesLibrary.dll)
7、添加aspx页面,例如名字为GetImage.aspx,Page_Load里添加如下代码
{
ResourcesLibrary.GetImage img = new ResourcesLibrary.GetImage();
System.Drawing.Bitmap bmp = img.GetSunset();
System.IO.MemoryStream ms = new System.IO.MemoryStream();
try
{
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
Response.ClearContent();
Response.ContentType = "image/Png";
Response.BinaryWrite(ms.ToArray());
}
finally
{
bmp.Dispose();
}
}
8、新建aspx页面
<div>
<asp:Image ID="img1" runat="server" ImageUrl="~/Mick/GetImage.aspx" />
</div>
把图片放到资源文件中,用起来稍微麻烦了些,但减少了发布文件的数量。
3) 如何通过Request获得另一个页面的字符串 2007.10.12
protected void Add_Button_Click(object sender, ImageClickEventArgs e)
{
string strScript = "<script defer>\n" +
"var strReturn = window.showModalDialog('cesAdd.aspx','desc','dialogWidth:350px;dialogHeight=300px');\n" +
"__doPostBack('AddLink',strReturn); </script>"; //LButton
if (!this.ClientScript.IsClientScriptBlockRegistered("OpenDialogScript"))
this.ClientScript.RegisterStartupScript(this.GetType(), "OpenDialog", strScript);
}
protected void AddLink_Click(object sender, EventArgs e)
{
string Addstring = Request["__EVENTARGUMENT"];
......
}
4) Win2003安装IIS时,提示无法复制staxmem.dll、iisapp.vbs、convlog.exe等文件的解决方法 2007.10.13
安装IIS时如果老提示无法复制staxmem.dll、iisapp.vbs、convlog.exe等文件,在确定你的安装盘或安装文件及你的操作系统的SP版本没问题没错的情况下,就别找同名文件来替换了,产生这样的问题是因为:损坏了系统内部数据库所致.修复损坏的数据文件即可正常安装。
解决方法如下(开始 > 运行 > 输入 CMD >再输入以下命令):
1、esentutl /g %windir%/security/database/secedit.sdb (该命令参数用于查询secedit.sdb文件是否被损坏,若返回“Integrity check successful”,刚表示该文件没有被损坏,否则请执行第2步命令参数以修复secedit.sdb文件)
2、esentutl /p %windir%/security/database/secedit.sdb (修复secedit.sdb文件)
3、插入安装盘再试一下,问题迎刃而解。
5) ASP.NET 中 CSS 不起作用的原因 2007.10.16
一般来说,ASP.NET 中 CSS 不起作用,只会在 IE 6 及以前的版本中出现,原因是因为 给定的 CSS 文件中包含不一致编码的文字。
如下列 CSS 文件:
{
color:#ffffff;
}
其中所包含有中文和英文。在默认情况下,ASP.NET 以 utf-8 的编码发送响应,如果 CSS 文件被保存为 gb2312 的话,IE6将无法解析其中的中文,从而无法应用样式,造成的现象就是 CSS 类不起作用。
解决方法如下:
1 打开 CSS 文件
2 选择[文件]菜单中的 [ 高级保存选项 ] 如图1 所示:
选择如图所示的 utf-8 编码,然后 [ 确定 ],再保存即可。
5) GridView的相关设置 2007.10.18
在DataGrid中日期设置OnClientClick属性来为按钮指定客户端单击事件,方法如下:
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="false" CommandName="Test" Text="按钮" OnClientClick="return confirm('你确认要删除这条数据吗?');"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
关于时间字段的格式化输出:
假如我们有一个时间字段,数据为"2005-12-23 10:01:20",想显示为"10:01"
在DataGrid中,我们可以简单的设置字段的显示格式即可,如:
<asp:BoundField DataField="datetime" DataFormatString="{0:HH:mm}" />
使用模板列的方法如下:
<asp:TemplateField HeaderText="时间">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("datetime", "{0:HH:mm}") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
常用下载:
.NET Framework 2.0:Microsoft .NET Framework 2.0 版可再发行组件包 (x86)
.NET Framework 2.0语言包:Microsoft .NET Framework 2.0 版简体中文语言包 (x86)
ASP.NET 2.0 AJAX:ASP.NET 2.0 AJAX Extensions 1.0
RDLC报表浏览:Microsoft Report Viewer Redistributable 2005 SP1 (完全安装)
RDLC报表浏览语言包:Microsoft Report Viewer 2005 语言包
RDLC报表部署时服务器缺少DLL:
“An error occurred during local report processing.
The definition of the report 'Main Report' is invalid.
An unexpected error occurred in Report Processing.
未能加载文件或程序集“Microsoft.ReportViewer.ProcessingObjectModel, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。系统找不到指定的文件。”
以前是找到以下3个dll文件:
1) Microsoft.ReportViewer.Common.dll
2) Microsoft.ReportViewer.WebForms.dll
3) Microsoft.ReportViewer.ProcessingObjectModel.dll
前两个都可以在C:\Program Files\Microsoft Visual Studio 2005\ReportViewer 中找到,第三个怎么也找不到。
现在只需下载Report VIewer 安装到客户服务器端就可以了。
7)代码注册updatepanle的更新事件 2007.11.4
实现代码如下:
首先在Page_Load向ScriptManager1注册异步更新的触发控件 ScriptManager1.RegisterAsyncPostBackControl(btnAdd);
然后在btnAdd的某个触发事件里调用要更新的方法;
最后该事件执行后,调用更新区域的updatepanle执行update()方法即可。
作者: XuGang 网名:钢钢 |
出处: http://xugang.cnblogs.com |
声明: 本文版权归作者和博客园共有。转载时必须保留此段声明,且在文章页面明显位置给出原文连接地址! |