标签: web-controls

当前上下文中不存在名称"GridView1"

我有两个名为TimeSheet.aspx.cs和TimSheet.aspx的文件,下面给出了该文件的代码供您参考.

当我构建应用程序即时获取错误"名称'GridView1'在当前上下文中不存在"甚至认为我有一个id为GridView1的控件,我也添加了runat ="server".

我无法弄清楚导致这个问题的原因.任何一个数字都可以在这里发生.

感谢和问候,

=======================================
TimeSheet.aspx.cs 
=======================================
#region Using directives
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using TSMS.Web.UI;
#endregion

public partial class TimeSheets: Page
{   
    protected void Page_Load(object sender, EventArgs e)
    {

        FormUtil.RedirectAfterUpdate(GridView1, "TimeSheets.aspx?page={0}");
        FormUtil.SetPageIndex(GridView1, "page");
        FormUtil.SetDefaultButton((Button)GridViewSearchPanel1.FindControl("cmdSearch"));
    }

    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        string urlParams = string.Format("TimeSheetId={0}", GridView1.SelectedDataKey.Values[0]);
        Response.Redirect("TimeSheetsEdit.aspx?" + urlParams, true);
    }

    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) {


    }
}
=======================================================
TimeSheet.aspx
======================================================= …
Run Code Online (Sandbox Code Playgroud)

asp.net webforms web-controls

4
推荐指数
1
解决办法
3万
查看次数

如何在ASP.Net WebControl的"Content"内部属性​​中包含其他标记?

我搜索过该网站,但我无法找到解决问题的方法,所以如果已经得到解答,我会道歉(我确定有人必须先问过这个问题).

我编写了一个jQuery Popup窗口,我将其打包为WebControl和IScriptControl.最后一步是能够在我的控件的标签内写入标记.我已经使用了InnerProperty属性几次,但仅用于包含强类型类的列表.

这是我在WebControl上的属性:

[PersistenceMode(PersistenceMode.InnerProperty)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public something??? Content
{
   get
   {
      if (_content == null)
      {
         _content = new something???();
      }
      return _content;
   }
}
private something??? _content;
Run Code Online (Sandbox Code Playgroud)

这是我所追求的HTML标记:

   <ctr:WebPopup runat="server" ID="win_Test" Hidden="false" Width="100px" Height="100px"
      Modal="true" WindowCaption="Test Window" CssClass="window">
      <Content>
         <div style="display:none;">
            <asp:Button runat="server" ID="Button1" OnClick="Button1_Click" />
         </div>
         <%--Etc--%>
         <%--Etc--%>
      </Content>
   </ctr:WebPopup>
Run Code Online (Sandbox Code Playgroud)

不幸的是我不知道我的Content属性应该是什么类型.我基本上需要复制UpdatePanelContentTemplate.

编辑:所以以下允许自动创建一个模板容器,但没有控件出现,我正在做什么错了?

[PersistenceMode(PersistenceMode.InnerProperty)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public ITemplate Content
{
    get
    {
        return _content;
    }
    set
    {
        _content = value;
    }
}
private ITemplate …
Run Code Online (Sandbox Code Playgroud)

html asp.net web-controls asp.net-webcontrol

4
推荐指数
1
解决办法
2768
查看次数

FindControl和动态创建的控件有问题

示例代码:

    var div = new HtmlGenericControl("div");
    div.Controls.Add(new Literal() { ID = "litSomeLit" });
    var lit = (Literal)div.FindControl("litSomeLit");
    Assert.IsNotNull(lit);
Run Code Online (Sandbox Code Playgroud)

此代码未通过断言,因为lit为null.调试显示div.Controls肯定包含ID为"litSomeLit"的文字.我的问题是"为什么?" 并且"有没有办法获得对特定ID的控制,而不是一次手动一个元素递归搜索div.Controls []?"

我这样做的原因是我的实际应用并不那么简单 - 我正在编写的方法给出了一个复杂的控件,在许多可能的配置中有几个子控件.我需要访问几个层的特定控件(例如,具有ID"txtSpecificControl"的控件可能在StartingControl.Controls[0].Controls[2].Controls[1].Controls[3]).通常我可以这样做FindControl("txtSpecificControl"),但是当控件刚刚动态创建时(例如上面的示例代码中),这似乎不起作用.

c# asp.net dynamic findcontrol web-controls

4
推荐指数
1
解决办法
4130
查看次数

在Repeater的HeaderTemplate中设置MyLabel.Text

我发现这样做的每个样本都包括在我的页面的OnLoad之外编写一个函数来执行此操作,但我很好奇是否有更简洁的方法来实现它.我在HeaderTemplate中有一个Label,我只想将标签的文本设置为字符串.如果标签位于转发器之外,我可以执行以下操作:

Month.Text = Enum.GetName(typeof(Month), Convert.ToInt16(MonthList.SelectedValue));
Run Code Online (Sandbox Code Playgroud)

有简洁的方法吗?

asp.net repeater web-controls

3
推荐指数
1
解决办法
1万
查看次数

未安装 IE 的 C# WebBrowser 控件(?)

我想使用 WebBrowser 控件加载一些本地文件 html 页面。我知道 WebBrowser 只是 InternetExplorer 的包装。我记得微软允许 Vista(?) 中的用户“卸载”InternetExplorer...

问题是:卸载InternetExplorer后WebBrowser是否可以顺利运行?这个卸载不会影响负责网页渲染的DLL吗?

我将不胜感激对此事的任何意见:)!

c# internet-explorer web-controls

3
推荐指数
1
解决办法
810
查看次数

如何在Winform WebControl中强制使用IE版本?

我试图在一个网页设计中找出问题,并记得用一个简单的javascript来获取浏览器版本,因为我有完全2个不同的行为

所以我加上这个:

<div id="example"></div>

<script type="text/javascript">

txt = "<p>Browser CodeName: " + navigator.appCodeName + "</p>";
txt+= "<p>Browser Name: " + navigator.appName + "</p>";
txt+= "<p>Browser Version: " + navigator.appVersion + "</p>";
txt+= "<p>Cookies Enabled: " + navigator.cookieEnabled + "</p>";
txt+= "<p>Platform: " + navigator.platform + "</p>";
txt+= "<p>User-agent header: " + navigator.userAgent + "</p>";

document.getElementById("example").innerHTML=txt;

</script>
Run Code Online (Sandbox Code Playgroud)

并发现了这个:

在此输入图像描述

原始图像

即使我在此计算机上安装了Internet Explorer 8,webbrowser控件也会加载一个不是已安装的IE版本(Internet Explorer 7).

如何强制使用正确的版本?

.net web-controls .net-3.5 winforms

3
推荐指数
1
解决办法
5174
查看次数

在c#中编写所有内容而不是使用Web控件是好还是坏?

我对在ASP.NET中获得结果的几种方法之间的选择很困惑.

例如,Web窗体控件SqlDataSource,您检索其他控件从数据库并显示结果数据,如DataGridView,BulletedList等.但是所有这些可以用C#编写,创建一个字符串,将与retrived数据保持你的HTML代码的东西,那么你插入你的Html代码div使用innerHTML.有什么不同?

例:

[ <div id='block1' runnat='server'></div]  
Run Code Online (Sandbox Code Playgroud)

在CodeBehind中

[ block1.innerHTML = myString;]
Run Code Online (Sandbox Code Playgroud)

编写C#代码SqlConnect,Loops,Datatable后,将HTML字符串的值放入myString.

为什么不用C#实现一切?

html c# web-controls

3
推荐指数
1
解决办法
156
查看次数

asp:标签不呈现子项

我有asp:label一个嵌套的自定义控件,它只是不呈现.我尝试注册一个类型的自定义WebControlAdapter,Label而在调试时我注意到Controls集合中显然没有控件,它似乎完全忽略了任何嵌套元素.

这是标记

<asp:Label ID="lbl13" runat="server" AssociatedControlID="txt13" Text="<%$ Resources:Resources, lbl13 %>">
    <asp:ValidationMessage ID="vm13" runat="server" MessageFor="txt13" CssClass="field-validation-error"></asp:ValidationMessage>
</asp:Label>
Run Code Online (Sandbox Code Playgroud)

知道如何绕过这个问题吗?

.net asp.net webforms web-controls

3
推荐指数
1
解决办法
425
查看次数

Fileupload 在 ASP.NET WebForm 中的 Microsoft IE 和 Microsoft Edge 浏览器中不起作用

我在 VB.NET 中有一个代码只是为了在 ASP.NET WebForm 中上传文件。它在 Firefox、Chrome 和 Safari 中完美运行。但是同样的代码无法在Microsoft Internet Explorer 和Microsoft Edge 中保存上传的文件,尽管应用程序中没有任何错误或异常。我需要有人的帮助来解决这个问题。我的 .aspx 代码和代码隐藏文件的代码如下:

WebForm1.ASPX

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm1.aspx.vb" Inherits="FileUploadTest.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:FileUpload ID="Uploader" runat="server" />
            <asp:Button ID="cmdUpload" runat="server" Text="Upload"  />
        </div>
    </form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

代码隐藏文件

Imports System.IO

Public Class WebForm1
    Inherits Page

    Dim uploadDirectory As String = "C:\Uploads\"
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    End Sub

    Protected …
Run Code Online (Sandbox Code Playgroud)

.net vb.net asp.net webforms web-controls

3
推荐指数
1
解决办法
3936
查看次数

获取用户控件的".ascx"路径

语境:

我创建了一个自定义的"脚本"控件,我在几个用户控件中使用它们(这些都是通过ASCX路径加载的).此脚本控件提供了一些有趣的功能,但我现在希望能够将脚本 ASCX标记移出到与ASCX控件相同的目录中,然后动态加载此标记.(我不能使用普通<script>标签,因为Script控件会创建一个特殊的绑定上下文,以便可以通过干净的API访问它.)

那个,目前我的脚本控件就像(<script>里面的元素由Script控件使用,不应该与最终的HTML标记混淆):

<SmartScript runat="server">
  <script>/* the code here */</script>
</SmartScript>
Run Code Online (Sandbox Code Playgroud)

但我希望它可以用作:

<SmartScript runat="server">
  <script src="~parent/theCode.js" />
</SmartScript>
Run Code Online (Sandbox Code Playgroud)

但是,我希望将"〜parent"扩展到ASCX控件的文件系统位置,以便我可以直接加载文件并将其用作渲染脚本的内容.

也就是说,给定基于ASCX的用户控件(可以通过Parent属性获取),如何确定容纳ASCX标记文件的系统路径?(而且,我应该注意哪些警告?)

优选地,这将是完整的路径,因为~/_CONTROLTEMPLATES/prj/ctrl.ascx"仍然会留下另一层重定向(~这里的意思是什么?).

(应用程序以足够的信任运行以从文件系统读取,我正在避免嵌入式资源,因此我可以推送布局更改,而无需推送DLL并重新启动IIS工作程序.)

asp.net ascx web-controls

2
推荐指数
1
解决办法
1822
查看次数