Tag: asp.net

ASP.NET gridview行onclick

我试图在数据绑定到gridview webcontrol后将onclick事件添加到一行。 下面的代码不添加任何属性(一旦创建页面就检查了viewsource),当然,没有添加任何function。 现在,我刚刚对页面进行了onclick打印,但最终它将链接到另一个页面。 关于什么是错的任何想法? 此外,感谢stackoverflow社区。 这个社区一直都是一个很好的帮助。 计划在本周末自己浏览一些post并开始回答问题,因为我可以回馈一下。 C#服务器端 protected void dataTbl_RowDataBound(GridViewRowEventArgs e){ e.Row.Attributes.Add(“id”,e.Row.Cells[0].Text); e.Row.Attributes.Add(“onclick”, “rowClick(‘”+e.Row.RowIndex+”‘)”); } Javascript客户端 function rowClicked(counter){ document.write(counter); }

GetWeekOfYear with Entity Framework

我的表中有一个名为Date的列,我需要将这个日期的WeekOfTheYear与DateTime.Now的WeekOfTheYear进行比较, 如果我这样给, var cal = CultureInfo.CurrentCulture.Calendar; int week = cal.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstDay, DayOfWeek.Sunday); 我在这里得到26分。 同样,在我的entity framework中,我需要比较本周的数据,为此我试过, entities.WorkingDays.Where(a => cal.GetWeekOfYear(a.DATE,CalendarWeekRule.FirstDay,DayOfWeek.Sunday) == cal.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstDay, DayOfWeek.Sunday) 当我像这样运行查询时,我得到的错误就像, “LINQ to Entities无法识别方法’Int32 GetWeekOfYear(System.DateTime,System.Globalization.CalendarWeekRule,System.DayOfWeek)’方法,并且此方法无法转换为商店表达式。” 我如何在这里每周获取数据,任何人都可以帮助我….在此先感谢

使用SmtpClient发送文件附件

我正在使用SmtpClient类发送邮件并附加文件。 除了电子邮件附件中的文件名是filestest.docx而不是test.docx之外,一切似乎都运行正常。 默认情况下,它附加文件所在的文件夹名称。 我只想看到实际的文件名。 msg.Attachments.Add(new Attachment(“I:/files/test.docx”)); 有任何想法吗?

ITextSharp PdfCopy使用示例

我正在尝试使用ItextSharp中的PdfSmartCopy,但我在c#中找不到任何相关的例子。 我的意思是我有一个包含表单字段的pdf,并且这些字段增加了700kb到pdf文档的大小。 没有表单字段的原始文档是100kb 。 欢迎任何其他sugestions,尤其是o一致地减少pdf大小。 (我使用adobe acrobat优化了生成的PDF,并将其减少到44kb 。因此必须在某处出现故障。)有没有办法减少PDF大小? 编辑:FormFlatenning没有帮助。 pdf模板文件仅包含文本,行和表,没有图像。 这是我的代码片段 PdfReader reader = new PdfReader(GetTemplateBytes()); pst = new PdfStamper(reader, Response.OutputStream); var acroFields = pst.AcroFields; pst.FormFlattening = true; pst.FreeTextFlattening = true; SetFieldsInternal(acroFields); pst.Close();

结合表单身份validation和基本身份validation

我有一些核心ASP代码,我希望通过安全网页(使用表单身份validation)和通过Web服务(使用基本身份validation)公开。 我提出的解决方案似乎有效,但我在这里遗漏了什么吗? 首先,整个站点在HTTPS下运行。 站点设置为在web.config中使用表单身份validation 然后我覆盖Global.asax中的AuthenticateRequest,以在Web服务页面上触发基本身份validation: void Application_AuthenticateRequest(object sender, EventArgs e) { //check if requesting the web service – this is the only page //that should accept Basic Authentication HttpApplication app = (HttpApplication)sender; if (app.Context.Request.Path.StartsWith(“/Service/MyService.asmx”)) { if (HttpContext.Current.User != null) { Logger.Debug(“Web service requested by user ” + HttpContext.Current.User.Identity.Name); } else { Logger.Debug(“Null user – use […]

c#如何从preinit设置和使用会话状态

好的,这样就可以设置和读取当前会话中的变量 String Myvar =(string) System.Web.HttpContext.Current.Session[“MyVariable”] 设置 System.Web.HttpContext.Current.Session[“MyVariable”] = “NewValue” 我什么都不能,我得到一个System.NullReferenceException: Object reference not set to an instance of an object. 来自System.Web.HttpContext.Current.Session。 在我的web.config中我有 我已经阅读了十几篇关于IHttpHandler和IRequiresSessionState接口的必要性的文章。 我认为问题可能是因为我在Page_PreInit请求此信息。 我在堆栈溢出文章中找到了一个解决方案 ,但我似乎没有正确使用它来实际实现这一目标。 我不确定我错过了什么。 提前致谢。

在GridView中获取ASP.NET HyperLinkField的文本

我正在尝试在GridView的OnRowDelete事件中获取HyperLinkField的文本(HyperLinkField的文本是我想删除的行的主键)。 我知道您无法使用我下面的代码获取文本; 它仅适用于BoundFields(对于HyperLinkFields,字符串为“”)。 但是,我一直无法找到获得此文本的工作答案。 如何从HyperLinkField获取显示的文本? (VS2010 w / ASP.NET 4.0和C#) 谢谢阅读! GridView设计 GridView填充代码 using (SqlConnection connection = new SqlConnection(WebConfigurationManager.ConnectionStrings[“***”].ConnectionString)) { // Initialize GridView and data teamGridView.AutoGenerateColumns = false; if (Convert.ToInt32(Session[“UserLevel”]) > 0) { teamGridView.Columns[2].Visible = true; } SqlDataAdapter teamDataAdapter = new SqlDataAdapter(); DataSet teamDataSet = new DataSet(); if (Request[“Team_Name”] == null) { // Show the […]

将会话变量从页面传递到页面

我想知道使用asp.net会话将变量从页面传递到页面的问题是什么。 我已经将代码删除到只有一个文本框来查看最新情况。 我只是想取一个文本框的值并将其显示在确认页面上。 单击该按钮时,它会将我转移到第二页,但标签为空白。 是的,我的post后面的url指向第二页。 这是按钮点击: protected void submit_Click(object sender, EventArgs e) { string name = txtFirstName.Text.Trim(); Session[“name”] = name; } 这是第二页的页面加载: protected void Page_Load(object sender, EventArgs e) { lblName.Text = (string)(Session[“name”]); } 除非我一直在看这个并且错过了什么。 我已经从MSDN上读过“如何:从会话状态读取值” 。

使用SSH.NET库从.NET连接到MySQL

我正在开发一个网页(ASP.NET / C#),它通过SSH在远程服务器上查询(MySQL)数据库。 我正在使用这两个库(mysql-connector-net-6.9.7)和(Renci.SshNet.dll)。 我可以通过SSH连接在远程服务器上使用MySQL Workbench访问MySQL数据库: “ portal.RemoteServer.edu:22 ”使用“ RemoteServerUsername ”和 “ RemoteServerPassword ”。 这是我的C#代码,它不会从远程服务器上的Clients表返回任何数据: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Configuration; using MySql.Data.MySqlClient; using Renci.SshNet; using Renci.SshNet.Common; namespace WebApplication1 { public partial class About : Page { protected void Page_Load(object sender, EventArgs e) { MySqlConnection […]

参数化sql查询 – asp.net / c#

所以我最近了解到我绝对应该使用参数化查询来避免SQL注入等安全问题。 这一切都很好,所有,我得到它的工作。 此代码显示了我如何执行的一些代码: param1 = new SqlParameter(); param1.ParameterName = “@username”; param1.Value = username.Text; cmd = new SqlCommand(str, sqlConn); cmd.Parameters.Add(param1); //and so on 但问题是,我有超过14个需要保存到数据库的变量,它就像一个注册表单。 如果我必须将这些行写入14次以参数化每个变量,它看起来会非常混乱。 有没有更有活力的方法呢? 就像使用for循环或其他东西并以某种方式参数化循环中的每个变量一样?