小编tbo*_*one的帖子

如何将aspx webform上的所有控件转换为只读等效项

有没有人编写过一个可以将aspx页面上的所有控件转换为只读版本的函数?例如,如果使用UserDetails.aspx编辑和保存用户信息,如果具有不适当权限的人进入该页面,我想将其呈现为只读.因此,大多数控件将转换为标签,加载来自可编辑原始控件的相应数据.

我认为这可能是一个相当简单的例程,即:

Dim ctlParent As Control = Me.txtTest.Parent  
Dim ctlOLD As TextBox = Me.txtTest  
Dim ctlNEW As Label = New Label  
ctlNEW.Width = ctlOLD.Width  
ctlNEW.Text = ctlOLD.Text  
ctlParent.Controls.Remove(ctlOLD)  
ctlParent.Controls.Add(ctlNEW)  
Run Code Online (Sandbox Code Playgroud)

...实际上你需要一个文本框 - >标签转换,但我希望有人可能知道现有的功能,因为在这里和某些控制和情况可能存在一些陷阱.

更新:
- 只是将ReadOnly属性设置为true不是一个可行的解决方案,因为它看起来很愚蠢,事情就像那样灰色. - 避免手动创建辅助视图就是这一点,所以使用巧妙的方式来显示使用标签手工构建的用户界面的只读版本是我想避免的.

谢谢!!

asp.net

5
推荐指数
1
解决办法
5614
查看次数

无法从后面的代码加载 FormView 上的 DropDownList?

我有一个 UserControl,包含一个 FormView,包含一个 DropDownList。FormView 绑定到数据控件。

像这样:

<asp:FormView ID="frmEdit" DataKeyNames="MetricCode" runat="server" DefaultMode="Edit" DataSourceID="llbDataSource" Cellpadding="0" >
    <EditItemTemplate>
        <asp:DropDownList ID="ParentMetricCode"  runat="server" SelectedValue='<%# Bind("ParentMetricCode") %>' />
    </EditItemTemplate>
<asp:FormView>
Run Code Online (Sandbox Code Playgroud)

我正在尝试从代码隐藏填充 DropDownList。如果这不包含在 FormView 中,我通常只会在 Page_Load 事件中执行它。但是,这在 FormView 中不起作用,只要我尝试这样做,访问代码中的下拉列表,即:

theListcontrol = CType(formView.FindControl(listControlName), ListControl)  
Run Code Online (Sandbox Code Playgroud)

...调用FormView的数据绑定机制,当然,它试图将DropDownList绑定到底层数据源,导致**'ParentMetricCode'有一个无效的SelectedValue,因为它不存在于列表中项目。“参数名称:值...”错误,因为尚未填充 DropDownList。

我尝试在 FormView 的 DataBinding() 事件中执行加载,但是:

theListcontrol = CType(formView.FindControl(listControlName), System.Web.UI.WebControls.ListControl)
Run Code Online (Sandbox Code Playgroud)

...失败,因为此时 FormView.Controls.Count = 0。

这是不可能的吗?(我不想使用辅助 ObjectDataSource 将下拉列表绑定到)

.net asp.net formview drop-down-menu

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

使用纯CSS(不使用VS Skins)为asp:GridView定义全局网站样式

我正在开发一个相当大的aspx web项目,广泛使用asp:GridViews

我想默认使用CSS在一个地方定义所有网格视图的外观.

据我所知,这样做的一种方法是通过Visual Studio中的"Skins"....但我记得有一段时间做了一些研究,发现很多人鄙视皮肤并且总是在asp.net中使用普通的CSS项目(虽然我不能完全记住他们的坏事).

所以我的问题是:1)是否有可能使用普通的CSS做全局默认的asp:GridView样式2)使用VS Skins是否有任何优势,或者只是简单的CSS就像使用皮肤一样强大和易于维护?

更新:我还要提到GridView有许多独特的样式,例如SelectedRowStyle-BackColor; 这对我原来的问题有什么影响吗?如果有人可以发布或链接到任何这样的例子,那将是非常有帮助的.

css asp.net

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

Excel函数从一个范围返回第一行或第一列?(在数据表中进行更好的双向查找)

所以我试图从数据表中进行经典的2路查找,即:

     Jan-00   Feb-00   Mar-00
Joe
Bill
Steve
Run Code Online (Sandbox Code Playgroud)

所以,我想在"Mar-00"中查找"Joe"的值.

这种类型的查找通常使用INDEX和MATCH函数的组合来完成.这种方法的缺点是MATCH只能作用于1维范围,因此在包含大量表格的大型电子表格中,您最终必须为每个表定义3个范围而不是一个(一个用于数据,一个用于标题行,左列一个).

我希望能够做到这样的事情:

index(data1,match("Mar-00",getrow(mydata,1)),match("Joe",getcolumn(mydata,1)))
Run Code Online (Sandbox Code Playgroud)

excel中有这样的东西(或者,这样做的方式完全不同,也许是excel中的一些新功能)?

excel worksheet-function

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

参数如何从 SQL Server 传递到基于 CLR 的存储过程?

使用这个例子:

http://www.sommarskog.se/dynsearch-2008/search_orders_cs.cs

....我构建了一个基于 CLR 的存储过程并将其成功部署到 SQL Server。当在 SSMS 中查看生成的存储过程定义时(请参见下面的代码),我注意到 C# 定义中定义的参数确实是 SP 定义的一部分,但是当您查看对存储过程的实际调用时,没有引用参数,所以我很好奇参数值实际上是如何传递的?

(我具体询问的原因是,在 C# 代码中,我想知道是否可以将Query变量设置为我想要的任何现有存储过程,然后在一个大 varchar 参数中将所有相关参数作为分隔的 KeyValue 对传递,然后拆分它们并将它们添加为循环内的 Command.Parameters 基本上,我正在尝试构建一个通用存储过程,它可以执行任何其他存储过程,而对参数的变化计数或数据类型没有任何限制,所有这些将在运行时读取。所以基本上,除了在 SQL Server 中实现之外,从 C# 调用到 SQL Server 时具有相同的灵活性。)

生成的存储过程(在 SSMS 中查看):

CREATE PROCEDURE [dbo].[search_orders_cs]
    @Orderid [int],
    @Fromdate [datetime],
    @Todate [datetime],
    @Minprice [money],
    @Maxprice [money],
    @Custid [nvarchar](4000),
    @Custname [nvarchar](4000),
    @City [nvarchar](4000),
    @Region [nvarchar](4000),
    @Country [nvarchar](4000),
    @Prodid [int],
    @Prodname [nvarchar](4000),
    @Debug [bit]
WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [SqlServerProject1].[StoredProcedures].[search_orders_cs]
GO


EXEC sys.sp_addextendedproperty @name=N'SqlAssemblyFile', @value=N'twg_clr_based_sp.cs' , …
Run Code Online (Sandbox Code Playgroud)

c# sql-server ssms sqlclr

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

是否可以编写自定义Power Query Connector?

在"来自其他来源"的Power Query中,我们看到了许多专业提供商(Facebook,SAP,SalesForce等).

我有兴趣编写一个自定义提供程序来访问无法通过任何内置连接器使用的本地专有数据存储.

我知道访问没有支持连接器的数据存储的"推荐方法"是通过OData源公开和使用数据.但是,我非常希望拥有一个用户友好的界面,以便用户可以轻松找到他们想要的特定提要.

从与一些不同的提供商一起玩,似乎有两个部分:

a)用于指定强制连接参数的UI,以及可选择的特定实体和过滤器
b)物理数据本身的提供者(Facebook.Graph(),Sql.Database()等)

目前是否有办法编写自定义连接器,或者是100%专有的连接器,仅由Microsoft提供?

编辑:

我应该注意,知识渊博的"不,这是不可能的,这就是为什么我这么认为"的答案肯定是鼓励的.我主要是问这有可能吗?

excel powerquery

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

从数据库加载多个纬度/经度点到谷歌地图标记的好方法?

我有一个包含多个地址的表格,包括他们的Lat/Long坐标,我想使用asp.net webforms和Google Maps Javascript API V3将这些标记中的许多标记一次放到谷歌地图上.

教程显示了如何添加一个标记:http:
//code.google.com/apis/maps/documentation/javascript/overlays.html#Markers

 var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
  var myOptions = {
    zoom: 4,
    center: myLatlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  }
  var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

  var marker = new google.maps.Marker({
      position: myLatlng, 
      map: map, 
      title:"Hello World!"
  });
Run Code Online (Sandbox Code Playgroud)

我的问题是,在我加载了多个地址服务器端(代码隐藏)之后,将这个集输出到html中的方法是什么,这样客户端javascript就可以迭代集合并将标记放到地图上.

更新

如果我已经创建了我的集合,那么在渲染时将其推送到页面的html中是一种不错的方式,而无需调用外部脚本?(将复杂的过滤器参数传递给脚本会很复杂,所以我宁愿避免这种情况.)我是否应该使用stringbuilder来构造包含正确的json数组的javascript函数,然后将该函数附加到页面?这可行,但似乎不太合适.

javascript asp.net google-maps google-maps-api-3

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

在具有聚合函数的简单查询中使用DISTINCT是多余的

具有聚合函数的简单查询中的DISTINCT是否有任何影响?

select DISTINCT salesperson, SUM(sales_amt) from sales GROUP BY salesperson
Run Code Online (Sandbox Code Playgroud)

我意识到有更复杂的查询,其中DISTINCT 可以产生影响,例如:

select salesperson, SUM(DISTINCT sales_amt) from sales GROUP BY salesperson
Run Code Online (Sandbox Code Playgroud)

(平台对该语法的支持可能会有所不同)

但我想确认在简单的查询示例中,DISTINCT是多余的.

编辑:修复了缺少GROUP BY的销售人员

sql sql-server oracle

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

PostgreSQL 可以加入存储过程吗?

在 SQL Server 和 Oracle 中,不支持加入(或从中选择)返回结果集的存储过程。

在 PostgreSQL 中可能吗?

如果是这样,后续问题是:是否有可能通过外部数据包装器加入到 MS SQL Server 数据库中的存储过程?

postgresql

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

从数百个存储过程中解析出完整的动态 SQL 表达式

我继承了一个包含数百个存储过程的大型应用程序,其中许多使用动态 SQL。为了更好地处理我正在处理的 SQL 类型,如果我有办法解析所有这些存储过程的查询文本并提取其中包含的任何动态 SQL 的完整表达式,那将非常有用。

一个简化的表达可能是:

declare @query nvarchar(max)
set @query = 'SELECT col1,col2,col3 from ' + @DatabaseName + '.dbo.' + @TableName + ' WHERE {some criteria expression that also contains inline quotes}'
Run Code Online (Sandbox Code Playgroud)

我正在寻求上述输出(最终将在解析所有存储过程的单个查询中调用)是:

SELECT col1, col2, col3 
FROM ' + @DatabaseName + '.dbo.' + @TableName + ' 
WHERE {some criteria expression that also contains inline quotes}
Run Code Online (Sandbox Code Playgroud)

因此,不是传入参数值之后的表达式,而是存储过程文本中的表达式文本,包括参数名称。

我对动态 SQL 参数名称为 的完全不安全的假设没有意见@query,因此在 SQL 表达式中搜索它以用作提取文本的起始位置是可以容忍的,但是因为有单引号内联,我没有简单的方法知道变量的赋值在哪里完成。

我在这个问题中包含了 [antlr] 和 [parsing] 标签,因为我觉得这超出了 T-SQL 的能力。

PS:是的,我很清楚“我不应该这样做”。

编辑

根据下面的建议,尝试了以下查询,但在这种情况下并没有真正有用:

SELECT …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server parsing stored-procedures scriptdom

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