问题标签 [templatefield]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5750 浏览

asp.net - 将 GridView 控件中的 asp:ButtonField 转换为 asp:TemplateField

我目前有一个网格视图,其中有一个 asp:ButtonField 作为列之一。命令的事件处理程序从命令参数中提取 gridview 的行 ID,并使用它来执行一些逻辑。我现在需要切换到使用此列的模板字段,并且想做这样的事情:

我的问题是 CommandArgument 属性 - 我不知道如何让它成为 GridView 中的行 ID。Eval("id") 不起作用 - 有谁知道行 id 属性的名称是什么?或者更好的方法来做到这一点?

0 投票
1 回答
2220 浏览

datetime - 使用文本属性在 TemplateField 中显示 HH:mm 24H 格式

我正在尝试使用此行显示 24 小时格式:

那么它将如何格式化以显示例如 16:40 而不是 4:40?

0 投票
9 回答
53451 浏览

asp.net - 如何将 HtmlEncode 与 TemplateFields、数据绑定和 GridView 一起使用

我有一个绑定到 ObjectDataSource 的 GridView。我也支持编辑,效果很好。但是,我想安全地对显示的文本进行 HtmlEncode,因为我们确实允许在某些字段中使用特殊字符。这与标准 BoundFields 无关,因为我只是将 HtmlEncode 设置为 true。

但是为了设置验证控件,需要使用 TemplateFields。如何轻松添加 HtmlEncoding 以这种方式输出?这是一个 ASP.NET 2.0 项目,所以我使用较新的数据绑定快捷方式(例如EvalBind)。

我想做的是如下所示:

但是,当我以这种方式尝试时,出现以下错误:

CS0103:当前上下文中不存在名称“绑定”

0 投票
1 回答
10580 浏览

asp.net - ASP:LinkBut​​ton 和 Eval

我在 GridView 的 TemplateField 内的 ItemTemplate 内使用 ASP:LinkBut​​ton。对于链接按钮的命令参数,我想从 gridview 绑定的数据源传递行的 ID,所以我正在做这样的事情:

不幸的是,生成的 HTML 是这样的:

似乎它正在正确解析 Eval() ,但这以某种方式导致它解析 LinkBut​​ton 标记而只是将其作为文字文本转储出来。有人知道吗:

a) 为什么会发生这种情况,b) 这个问题有什么好的解决方案?

0 投票
2 回答
30381 浏览

asp.net - ASP:ItemTemplate 中的DropDownList:为什么允许 SelectedValue 属性?

这段代码

产生此错误:

不能以声明方式设置“SelectedValue”属性。

然而,对于数据绑定的 GridView,这是一个合法且常用的编辑模板。该SelectedValue属性当然似乎是在此处以声明方式设置的。

问题是:允许以声明方式设置它的情况与不允许设置的情况有什么区别?错误消息暗示它永远不允许。

0 投票
2 回答
1949 浏览

c# - 以编程方式添加的 TemplateField 中的控件何时设置其 ID 属性?

我有一个动态添加到自定义 GridView 的 TemplateField。

为了响应网格命令(插入/更新/删除),调用了一个名为 GetRowControls 的方法,该方法遍历特定网格行中的列,并将其每个控件添加到字典中。

因此,这对于以声明方式添加的模板字段和绑定控件以及以编程方式添加的动态非模板字段都适用。

但是,当控件是动态添加的 TemplateField 控件时,ctrl.ID 始终为 null,因此上面的语句会引发异常。

我用 Reflector 研究过这个问题,因为我发现当我在 VS 2005 的即时窗口中检查变量时,即 ?ctrl,ctrl.ID 会列出一个值。我已经确定这是因为在即时窗口中列出 ?ctrl 时,调用了属性 ClientID 并且 ClientID 调用了 EnsureId(),而后者又设置了 ID。

所以我假设 ClientID、UniqueId 和 ID 都是空的——尽管如上所述,只读取前两个将触发所有设置。另请注意 NamingContainer 不为空。它已被设置。

所以解决这个问题非常简单,即检查 ctrl.ID==null,如果是这样,只需读取 ctrl.ClientID。这就是我所做的,因为从时间上讲,我真的需要继续努力。但是,如果有人不自觉地知道答案,我仍然对答案感兴趣。

为什么动态添加的 TemplateField 的子控件的 ID 值设置在与其他控件不同的时间?

0 投票
1 回答
1359 浏览

asp.net - 将 TemplateField 添加到 DetailsView

如何将 TemplateField 控件添加到 DetailsView Fields 集合的开头?

这是我的代码..

这将添加到 DetailsView 控件的最后。我尝试了 dv.Fields(0) 但没有可用的 Add 方法。我注意到我们有 dv.Fields.RemoveAt 但我们没有 dv.Fields.AddAt...

有任何想法吗???

0 投票
3 回答
10048 浏览

asp.net - 如何使用带有 TemplateFields 的 ObjectDataSource 在 GridView 上进行排序

背景:

我正在使用 GridView 和 ObjectDataSource。我正在实现分页和排序。

在 ObjectDataSource 上:

在 GridView 上:

为了使分页和排序正常工作,我将“EnableSortingAndPagingCallbacks”设置为 True。之前,我收到“System.Web.HttpException:GridView 触发的事件排序未处理”。这解决了它。

如果我在我的 GridView 中只使用 BoundFields,这很好并且工作正常。

但是,如果我使用 TemplateFields,我会收到“NotSupportedException:TemplateField 不支持回调,因为某些控件无法在回调中正确更新。在 GridView 上关闭回调。”

这是有道理的。我只需要知道如何进行排序,而不使用 EnableSortingAndPagingCallbacks。

如果 EnableSortingAndPagingCallbacks = True:

  • 寻呼工程
  • 分拣作品
  • BoundFields 工作
  • 模板字段不起作用

如果 EnableSortingAndPagingCallbacks = False:

  • 寻呼工程
  • 排序不起作用_
  • BoundFields 工作
  • 模板字段工作

我的问题:

如何让分页、排序和模板字段同时工作?


关于实施的说明:

使用带有 GridView 的 ObjectDataSource 需要实现一个名为 Select 的方法,该方法提供排序表达式、要返回的行数和起始行:

具体的 SortExpression 在 aspx/ascx 中定义:

应该在单击列时传入并调用 ObjectDataSource 上的 Select 方法,但如果 EnableSortingAndPagingCallbacks = true 似乎不起作用,而是我得到关于未定义排序事件的异常。

0 投票
3 回答
14986 浏览

c# - 我可以以编程方式将链接按钮添加到 gridview 吗?

我一直在寻找一些类似的问题,但没有任何运气。我想做的是有一个gridview,它对于某些项目显示一个链接按钮,而对于其他项目显示一个超链接。这是我目前拥有的代码:

其中第一个单元格是 TemplateField。目前,一切都正确显示,但链接按钮不会引发 Command 事件处理程序,并且所有控件都会在回发时消失。

有任何想法吗?

0 投票
3 回答
1531 浏览

asp.net - asp 的等价性:GridView 的HiddenField

没有可以在 GridView 中使用的 asp:HiddenField 所以我想知道什么会与此类似。

我想要这个的原因是我有一个触发 OnRowCommand 的 ButtonField。从那里我可以确定选择了哪一行,但我无法从 ButtonField 检索文本值以查看绑定到它的数据(通过 DataTextField)。

我对此的解决方案是拥有一个 BoundField 并从中检索文本值,因为我已经知道选择了哪一行。这行得通,但我需要隐藏它。

有人建议使用嵌套在 TemplateField 中的 HiddenField,但我无法从该 HiddenField 中检索文本值。有没有办法访问 TemplateField 中的控件以获取 HiddenField 的文本值?

如果有人对替代品有任何建议,那也很好。

谢谢,
马特