小编Rya*_*ndy的帖子

GridView RowDataBound不会在回发时触发

在ASP.NET页面上,我有一个填充了LINQ查询结果的GridView.我在代码中设置DataSource,然后在其上调用DataBind.在GridView的RowDataBound事件中,我根据查询结果选择性地隐藏某些GridView字段中的链接.(例如,我隐藏有问题的行的"显示父级"链接没有父行.)

这最初工作正常.但是在回发时(当我调用DataBind,但GridView通过ViewState保持填充时),数据显示,但RowDataBound事件(显然)不会触发,并且我的链接不会被隐藏.

回发后隐藏链接的最佳方法是什么?

c# vb.net asp.net postback gridview

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

UserControl作为界面,但在Designer中可见

所以我们有一个C#WinForms项目,其中包含一个包含数百万UserControl的表单.除了自己的特定成员之外,每个都UserControl自然地暴露所有UserControl方法,属性等.

我一直在想减少处理这些问题的复杂性的一种方法UserControl是通过接口访问它们.因此,而不是拖放到UserControl表单上,在构造函数中这样的东西:

public class MyGiantForm
{
    ICustomerName cName;

    public MyForm()
    {
        InitializeComponent();

        var uc = new SomeCustomerNameUserControl();
        this.Controls.Add(uc);
        cName = uc;
    }
}
Run Code Online (Sandbox Code Playgroud)

SomeCustomerNameUserControl实现ICustomerName,自然地,并ICustomerName包含我真正关心的特定属性(比如说FirstNameLastName).通过这种方式,我可以UserControl通过cName成员参考,而不是被所有UserControl成员击败,我只得到那些成员ICustomerName.

一切都很好,但问题是,如果我这样做,我SomeCustomerNameUserControl在Designer 中看不到.有谁知道我可以做到这一点,但仍然看到UserControl表格的设计表面?

编辑:执行此操作的一种方法是将控件放在基本表单上,这种方法并不过分复杂.默认情况下(在C#中)控件成员是私有的.然后我为每个控件创建一个属性,通过接口公开它.

但是,我会对其他一些方法感兴趣,即使它更复杂.似乎有一些方法可以用IDesignerHost来做,但我找不到任何适用的例子.

.net c# user-controls custom-controls winforms

7
推荐指数
3
解决办法
7560
查看次数

'{{FSharpCoreShippedPackageVersion}}' 不是有效的版本字符串

我刚刚升级到 Visual Studio 2019 版本 16.5.0 Preview 2.0。它似乎破坏了使用dotnet命令行工具在 F# 中构建和运行 .NET Core 项目的过程。

以前dotnet builddotnet run工作的罚款。现在任何一个都会产生此错误消息(为了可读性而包装):

C:\Program Files\dotnet\sdk\3.1.200-preview-014883\NuGet.targets(124,5):
  error : '{{FSharpCoreShippedPackageVersion}}' is not a valid version string.
Run Code Online (Sandbox Code Playgroud)

我的项目中的FSharpCoreShippedPackageVersion任何地方都没有我可以看到的字符串(包括在 .fsproj 文件中)。我还查看了引用的 NuGet.targets 文件,但也找不到FSharpCoreShippedPackageVersion

使用dotnet new console --language=F#也失败,告诉我恢复 NuGet 包,但尝试dotnet restore给出相同的错误消息。

我能做些什么来解决这个问题?

f# .net-core visual-studio-2019

7
推荐指数
1
解决办法
665
查看次数

Subversion(TortoiseSVN) - 默认签入消息?

有没有办法在TortoiseSVN Commit对话框中设置客户端脚本/钩子/设置/什么才能有默认消息?

(我想在那里放一些文字,提醒我在检查代码时注意错误编号.)

svn tortoisesvn

6
推荐指数
1
解决办法
889
查看次数

为什么WebGrid在格式化中使用动态?

我正在使用System.Web.Helpers.WebGridASP.NET MVC 3 Razor项目,我无法理解为什么a的格式参数WebGridColumn是a Func<dynamic, object>.

如果我创建这样的列...

grid.Column(
    format: x => string.Format("{0:d}", x.StartDate)
    );
Run Code Online (Sandbox Code Playgroud)

...我没有在StartDate属性上获得强大的输入.如果我试着像这样绕过它......

grid.Column(
    format: (MyObjectType x) => string.Format("{0:d}", x.StartDate)
    );
Run Code Online (Sandbox Code Playgroud)

...我在运行时被告知我的lambda不能被强制转换为Func<dynamic, object>.有什么方法可以在这里使用非动态lambda吗?即使它只是<object, object>

(我在.NET 4.0中,并且Func<in T, out TResult>应该是T的逆变,但我对协方差和逆变与动态如何一起工作感到困惑.)

lambda dynamic .net-4.0 webgrid asp.net-mvc-3

6
推荐指数
1
解决办法
1589
查看次数

用于重要文件备份的git - 为什么不呢?

说我想用Git备份我的电脑.

我不关心完整的系统备份.如果我的硬盘坏了,我不介意重新安装.我只想备份我的数据文件,这些文件都在一个分区上.

为了备份Git,我可以在该分区上创建一个repo,在一个单独的驱动器或系统上克隆它(裸),并定期提交并推送以备份我的文件.

如果有的话,以这种方式使用Git备份的缺点是什么?

git backup

6
推荐指数
1
解决办法
3751
查看次数

如何让LabView停止锁定我的.NET DLL?

我正在尝试使用LabView,试验如何将它与.NET结合使用.我设法创建了一个小应用程序,它读取一个仪表,转换.NET中的值,并在另一个仪表上显示结果.

麻烦的是,当我尝试添加到.NET项目并重建时,DLL被锁定,我无法覆盖它. NI声称LabView使用Shadow Copying.但如果这是真的,我的DLL不应该被锁定.

有什么方法可以让LabView停止锁定DLL吗?除了每次我想重建时退出LabView,这似乎是一个乏味的修复.

.net c# labview

6
推荐指数
2
解决办法
3054
查看次数

即使在Nightwatchjs中测试失败,Browserstack也会报告成功

我刚开始使用带有browserstack的夜视仪,我注意到当我们得到一个失败的测试时,nightwatch会记录失败,但是browserstack没有. 我正在使用的样品测试.我也在使用BrowserStack的免费试用版.

我的问题是:

  1. 有没有想法如何在测试运行失败时告诉browserstack?

来自BrowserStack doc:

REST API

可以使用以下代码段将测试标记为通过或失败:

var request = require("request"); 
request({
    uri: "https://user:key@www.browserstack.com/automate/sessions/<session-id>.json",
    method: "PUT",
    form: {
        "status": "completed",
        "reason":""
    }
});
Run Code Online (Sandbox Code Playgroud)

状态的两个潜在值可以完成或错误.可选地,也可以通过原因.

我的问题是:

  1. 如何在测试执行后获得'session-id'?
  2. 如果我已经在仪表板中看到"已完成"状态怎么办?

node.js selenium-webdriver browserstack nightwatch.js

6
推荐指数
1
解决办法
3783
查看次数

如何确定我有JDK11的“免费”版本还是“非免费”版本?

众所周知,Oracle更改了Java 11中的Java许可证,要求JDK商业使用需要付费许可证。使用OpenJDK仍然是免费的。

我的PC上有一个JDK 11文件夹,如下所示:

在此处输入图片说明

这些文件夹中的某处是否有办法告诉我我有免费的OpenJDK版本还是需要付费许可证的Oracle JDK版本?

java java-11

6
推荐指数
1
解决办法
161
查看次数

“将属性 getter 转换为初始值设定项” - 但它们不是同一件事,不是吗?

我将 IntelliJ 与混合 Java/Kotlin 项目一起使用。在我的 Kotlin 文件之一中,我有以下属性:

override val value: String
    get() {
        return webElement.getAttribute("value")
    }
Run Code Online (Sandbox Code Playgroud)

IntelliJ 的灯泡提供“将属性 getter 转换为初始值设定项”,这会将代码更改为:

override val value: String = webElement.getAttribute("value")
Run Code Online (Sandbox Code Playgroud)

对我来说,这似乎不是一个简单的重构,而是一个重大的代码更改。我认为正在发生的事情是:

  • 在第一个版本中,value当我调用 时会检索该属性value

  • 在更改后的版本中,该value属性在构造类实例时立即设置,然后对该类实例永远不会更改。

但也许这更像是 C# 表达式主体成员,它使用 lambda 箭头=>而不是大括号,return但在其他方面的工作方式完全相同。

那么……是哪个?第二版代码何时初始化?

intellij-idea kotlin

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