Tag: webforms

在aspx页面中支持OPTIONS请求标头

我正在维护一个接受表单post并添加对CORS请求的支持的服务我在Firefox 3.6中遇到了问题,它发送带有OPTIONS请求标头的预检请求。 我在使用通用的http处理程序页面添加必要的Access-Control-Allow-Origin响应头时没有任何问题,但是我在完整的aspx页面上遇到了困难。 它肯定没有击中Page_Load,我无法弄清楚它在页面生命周期中的位置。 有人有主意吗? 谢谢!

用户控件事件处理程序在回发时丢失

我有一个名为LeftMenu的菜单usercontrol,它有一个项目符号列表。 它位于ascx页面上: 我在if(!isPostBack)下的page_load中数据绑定列表 我在加载控件的页面上遇到问题。 首次加载页面时,事件处理程序将触发。 但是,当页面回发它不再触发时,在IE8中,当我调试时,我在Visual Studio中得到“Microsoft JScript运行时错误:对象预期”指向“__doPostBack(’LeftMenu $ PublisherList’,’0’) “。 在FF我没有得到错误,但没有任何反应。 我没有动态加载控件,它使用以下命令加载到aspx页面: 我失去事件处理程序的任何想法? 我刚刚意识到这也发生在我拥有的另一个用户控件上。 一个文本框和一个按钮,我正在使用默认按钮,以确保按Enter键使用该按钮。 .Net将html中的内容转换为: 所以当我在框中输入一个键时,我会在“预期的对象”行中收到一个javascript错误。 似乎这两个问题是相关的。 再次编辑:我想我需要澄清一下。 这不是我点击菜单项,它无法在回发中找到所选项目。 我有这个搜索页面,左侧导航,然后页面的主要内容是导致回发的东西。 这个回发一切都很好。 一旦该页面被回发,现在如果我点击左侧导航中的项目符号列表,我会收到一个javascript错误,但它失败了。 永远不会调用LeftMenu控件的page_init。

任何具有良好unit testing的ASP.NET(WebForm)应用程序(CodePlex或任何地方)?

我正在寻找任何ASP.NET(WebForms&C#)应用程序,它在其解决方案中有一些很好的unit testing。 良好的意义测试不同类型的边缘情况,并做了良好的代码覆盖。 CodePlex,GitHub或任何地方的任何应用程序都可以。 这是出于教育目的,所以我更喜欢较小的应用程序而不是大型的 有什么建议? 澄清: 虽然应用程序是WebForms,但我感兴趣的unit testing更多的是业务逻辑,而不是UI。 是的,任何.NET应用程序都可以做,但如果它是带有一些UI测试的WebForms,那就更好了。

Web表单中的Treeview检查父节点上的子节点检查

我使用Treeview控件的System.Web.UI类来显示项目的类别和子类别。 我尝试过以下代码,但没有希望 protected void tvwOrganisation_TreeNodeCheckChanged(object sender, TreeNodeEventArgs e) { if (tvwOrganisation.CheckedNodes.Count > 0) { // the selected nodes. foreach (TreeNode node in tvwOrganisation.CheckedNodes) { if (node.ChildNodes.Count > 0) { foreach (TreeNode childNode in node.ChildNodes) { childNode.Checked = true; } } } } } 有没有办法可以做到这一点,我也尝试过javascript。 还有什么是在Web表单中替换AfterCheck – windows formd事件。

维护回发之间的通用列表

这是我的代码隐藏中的内容: List events = new List(); protected void Page_Load(object sender, EventArgs e) { } protected void AddEvent_Click(object sender, EventArgs e) { Event ev = new Event(); ev.Name = txtName.Text; events.Add(ev); } 我想在每次单击“添加”按钮时将项添加到列表中,但是每次回发后都会重置列表。 如何在回发之间保留列表中的数据?

asp.net动态添加GridViewRow

我看过这篇文章如何以编程方式在GridView中插入一行? 但我不能让它添加一行我在RowDataBound上尝试它然后DataBound事件,但他们都不工作在这里是我的代码,如果有人可以告诉我如何动态添加行到GridView而不是页脚结束无论如何这将是很酷的是我的代码不起作用 protected void CustomGridView_DataBound(object sender, EventArgs e) { int count = ((GridView)sender).Rows.Count; GridViewRow row = new GridViewRow(count+1, -1, DataControlRowType.DataRow, DataControlRowState.Insert); //lblCount.Text = count.ToString(); // count is correct // row.Cells[0].Controls.Add(new Button { Text=”Insert” }); // Error Here adding Button Table table = (Table)((GridView)sender).Rows[0].Parent; table.Rows.Add(row); // table doesn’t add row }

如何在行数据绑定事件中获取单元格的值? 以及如何检查单元格是否为空?

我正在使用sqldatasource和GridView 。 我想从RowDataBound事件中的GridView获取单元格的值?因为我不能使用e.RowIndex 。 如果单元格为空,如何检查updatng事件? 我使用if != null ,但它没有用,所以我需要检查它是否为空。 谢谢

FormsAuthentication.Decrypt始终在其中一个Web服务器中返回null

我有一个基于asp.net 4.0的webform应用程序,部署到两个不同的服务器。 webform应用程序只有一个Default.aspx及其代码: protected void Page_Load(object sender, EventArgs e) { MachineKeySection section = (MachineKeySection)ConfigurationManager.GetSection(“system.web/machineKey”); this.Response.Write(section.DecryptionKey); this.Response.Write(“”); this.Response.Write(section.ValidationKey); this.Response.Write(“”); var authToken = “xxxxxx”; //the real token is obviously not xxx, just an example here this.Response.Write(authToken); this.Response.Write(“”); var ticket = FormsAuthentication.Decrypt(authToken); if (ticket != null) this.Response.Write(ticket.Name); this.Response.End(); } 将具有相同web.config的相同代码部署到两个Web服务器。 但是,其中一个工作正常,另一个总是将其ticket等于null。 如果我删除if (ticket != null)则抛出空引用exception。 它们具有完全相同的输出,除了票证部分。 Web服务器在Windows Server […]

类型定义存在于两个库中

我正在使用.NET 4.5构建ASP.NET Web Forms网站。 错误 … The type ‘System.ComponentModel.DataAnnotations.Schema.ForeignKeyAttribute’ exists in both ‘f:\Projects\web sites\RC1Iteration05\packages\EntityFramework.5.0.0\lib\net40\EntityFramework.dll’ and ‘c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.ComponentModel.DataAnnotations.dll’ 我试图使用…来对库进行别名… csc /r:EF_DataAnnotations=”f:\Projects\web sites\RC1Iteration05\packages\EntityFramework.5.0.0\lib\net40\EntityFramework.dll” /r:CM_DataAnnotations=”c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.ComponentModel.DataAnnotations.dll” 但这只会导致“无源文件指定”同样令人困惑,因为源文件被指定为指示( 此处和此处 )。 我注意到该错误引用了net40文件夹中的EF dll而不是net45文件夹。 我想如果我使用net45版本问题会自行解决,但我不知道如何更改该引用。 我将“targetFramework”属性更改为packages.config文件中的EntityFramework包,但这没有任何区别。 我有点卡住,因为这两个解决方案似乎都没有做任何事情。 我环顾四周,在这里发现了一些post,人们已经处理过类似的问题,但没有收到任何答复。 我希望那里有人可以提供帮助! 谢谢 G

通过CommandArgument传递两个值并将其拆分

我正在使用LinkBut​​ton的commandArgument属性(包含在转发器中)将两个值 – 一个字符串 – 传递给第二个转发器然后我尝试将它们分成两个值,所以我可以将它们用作我的参数ADO.NET代码(SqlCommand参数)….在测试我的查询后不会返回任何结果但是如果我传递参数的固定值或更改参数的来源(仅用于从文本框或查询字符串或其他东西进行测试)我得到了我的结果,所以我认为问题在于分裂。 我从LinkBut​​ton的ArgumentCommand属性中执行一些arugment值 – 它包含在转发器中: <asp:LinkButton id="sort_lnkbtn" Text='’ CommandArgument=” runat=”server”> 然后我收到这些值并将它们分成两部分信息: string sortByAndArrangeBy = (e.CommandArgument).ToString(); char[] separator = { ‘|’ }; string[] sortByAndArrangeByArray = sortByAndArrangeBy.Split(separator); 现在,ado.net代码将此值用作 using (SqlConnection cn1 = new SqlConnection(ConfigurationManager.ConnectionStrings[“testConnectionString”].ConnectionString)) { using (SqlCommand cm1 = new SqlCommand(“SELECT [name] FROM brands WHERE (name like @SearchString + ‘%’ )”, cn1)) { cm1.Parameters.Add(“@SearchString”, […]