小编wot*_*ney的帖子

简单的BackgroundWorker不会更新网页上的标签

我在这个有用的帖子中使用了一段简单的代码

它使用一个按钮和一个标签,标签应报告"10%完成"......"20%完成"......等等.

当我调试时,代码被点击,但我的标签没有在浏览器上更新.

我尝试使用和不使用更新面板,有和没有母版页.

protected void btnStartThread_Click(object sender, EventArgs e)
    {
        BackgroundWorker bw = new BackgroundWorker();

        // this allows our worker to report progress during work
        bw.WorkerReportsProgress = true;

        // what to do in the background thread
        bw.DoWork += new DoWorkEventHandler(delegate(object o, DoWorkEventArgs args)
        {
            BackgroundWorker b = o as BackgroundWorker;

            // do some simple processing for 10 seconds
            for (int i = 1; i <= 10; i++)
            {
                // report the progress in percent
                b.ReportProgress(i * 10); …
Run Code Online (Sandbox Code Playgroud)

c# asp.net multithreading backgroundworker

11
推荐指数
1
解决办法
1527
查看次数

使用后面的代码设置div的css类

我知道我们可以使用以下代码设置各种样式属性:

divControl.Style("height") = "200px"
Run Code Online (Sandbox Code Playgroud)

但是如何设置它的类而不是从代码中声明每个样式?

c# vb.net asp.net

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

如何使用asp.net克隆/复制控件(带子控件)?

到目前为止,我已经尝试了在网上和网上其他地方找到的一些不同的解决方案.也许你们其中一个知识渊博的人可能会帮助...

我有一堆由用户动态创建的控件,我将其作为控件集合存储在会话状态中,因此我可以在每次回发时显示它们.

用户生成的每个控件都是一个div,其中包含其他控件.

我在每个控件上都有一个按钮,允许用户删除控件或复制它.

当用户点击"Duplicate"时,我正在调用处理事件的web方法.

当我的web方法找到要复制的控件时,我想制作该控件的副本并将其添加到页面中(另一个函数处理将其保存到控件集合中(在page_Unload上)

 Dim DupCtrl As Control = Nothing

        Dim int As Integer = myDynControls.Count
        For i = 0 To int - 1

            If myDynControls(i).ID.Contains(ctrlID) Then
                DupCtrl = Clone_Control(myDynControls(i))
                Exit For
            End If

        Next
End Function
Run Code Online (Sandbox Code Playgroud)

而Clone_Control函数:

Public Shared Function Clone_Control(OriginalControl As Object) As Object

    Dim type As Type = OriginalControl.[GetType]()
    Dim properties As Reflection.PropertyInfo() = type.GetProperties()
    Dim retObject As [Object] = type.InvokeMember("", System.Reflection.BindingFlags.CreateInstance, Nothing, OriginalControl, Nothing)
    For Each propertyInfo As Reflection.PropertyInfo In properties
        If propertyInfo.CanWrite Then …
Run Code Online (Sandbox Code Playgroud)

vb.net asp.net clone dynamic-controls

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

将对象集合作为参数传递到SQL Server存储过程

我有一个关于是否可以做某事的一般性问题 - 以及它是否是最有效的方式!

总结一下:我可以将对象集合作为参数传递给存储过程吗?

假设我有一个SQL Server表调用Users [UserID, Forename, Surname] ,另一个表调用Hobbies [HobbyID, UserID, HobbyName, HobbyTypeID]

此设置用于记录针对用户的多个爱好.

在我的应用程序中,我想更新用户记录.

通常 - 我会更新用户表,然后在代码中循环遍历每个爱好并按记录更新爱好表记录.

如果我正在更新用户的名字和2个他们的爱好,这将需要3次调用数据库.

(1调用存储过程来更新forename/surname,2调用存储过程来更新2个hobby记录)

我的问题是:
我可以通过将所有参数传递给1个存储过程来只调用一次数据库.

例如.

intUserID = 1
strForename = "Edward"
strSurname = "ScissorHands"

dim objHobbyCollection as New List(Of Hobby)
'Assume that I have 2 hobby objects, each with their hobbyID, UserID, HobbyName & HobbyTypeID

Dim params As SqlParameter()
params = New SqlParameter() {
    New SqlParameter("@UserID", intUserID),
    New SqlParameter("@Forename", strForename),
    New SqlParameter("@Surname", strSurname),
    New SqlParameter("@Hobbies", objHobbyCollection) 
    }
Run Code Online (Sandbox Code Playgroud)

我可以这样做吗?(哪种方式更有效?)存储过程会是什么样的?

ALTER …
Run Code Online (Sandbox Code Playgroud)

sql vb.net sql-server asp.net stored-procedures

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

将样式添加到System.Web.UI.Control

我正在从数据库模式构建一大堆不同的控件.当我在后面的代码中运行控件时,我想将控件和样式(作为数据库中的字符串...例如"color:white; width:50px; height:10px;")传递给re - 功能.

这就是我认为我应该去做的事情:

 Sub AddStylesToControl(ByRef ctrl As Control, Styles As String)

    'split styles string by semi colon
    Dim StyleArr() As String
    Dim count As Integer
    StyleArr = Styles.Split(";")
    For count = 0 To StyleArr.Length - 1

        '//ctrl.Attributes.Add("style", "color: red;")
        ctrl.Attributes.Add("style", StyleArr(count))
    Next

End Sub
Run Code Online (Sandbox Code Playgroud)

不幸的是,在行"ctrl.Attributes.Add("style",StyleArr(count))"我得到一个错误:'attributes'不是'system.web.ui.control'的成员我明白错误意味着什么,但有没有人知道这方面的方法?

非常感谢,斯科特

vb.net asp.net attributes styles

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

在一行中清除CheckBoxList

有谁知道如何清除CheckBoxList一行?

我有一个CheckBoxList拥有数百个值的东西,我只是想加速代码.

即不遍历每个复选框,如下所示:

foreach (ListItem li in cblCategories.Items)
        { li.Selected = false; }
Run Code Online (Sandbox Code Playgroud)

我知道这不会对用户体验产生巨大影响 - 我只是好奇是否有人知道更有效的方法呢?我希望有类似的东西:

cblCategories.Items.Selected = none;
Run Code Online (Sandbox Code Playgroud)

c# performance checkboxlist

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

如果第一个测试为null,则命令if语句忽略后续测试

我想说这个属性是否为(Null OR Equals""OR contains"ImageNotAvailable")然后继续做一些事情.但是当我尝试使用下面的代码时,我得到一个对象引用错误.我希望通过(Publisher.ThumbnailURL == null)在测试开始时,其他测试将被忽略,但我得到上面的错误.

if ((Publisher.ThumbnailURL == null) | (Publisher.ThumbnailURL == "") | (Publisher.ThumbnailURL.Contains("ImageNotAvailable"))) 
Run Code Online (Sandbox Code Playgroud)

我可以简单地将它们拆分为"If Else's",但有没有办法指定如果第一个测试为null,请不要试图找出其余的If语句,这将导致它出错

c# if-statement

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

如何在SQL Server中传递可选的日期参数

我认为这应该很简单,但我一直遇到问题.我只想从位于日期范围之间的表中返回所有数据.但我希望日期范围是可选的.

ALTER PROCEDURE [dbo].[sp_ExistingPlacements_Get]
     @DateFrom  DATE = NULL,
     @DateTo    DATE = NULL
 AS
BEGIN
    SET NOCOUNT ON;
    SELECT *
    FROM tblExistingPlacements
    WHERE
      CreatedDT > COALESCE(NULLIF(@DateFrom, ''), @DateFrom)
      AND
      CreatedDT < COALESCE(NULLIF(@DateTo, GETDATE()), @DateTo)
END
Run Code Online (Sandbox Code Playgroud)

因此,如果没有传入日期,我们将返回整个表.

如果只传递开始日期(DateFrom),我们返回行>开始日期和所有截至当前日期.

如果仅传递结束日期(DateTo),则返回所有行<结束日期

当然,如果两个日期都通过,则返回这些日期之间的所有行.

我和COALESCE走错了路吗?

sql-server stored-procedures

0
推荐指数
1
解决办法
8174
查看次数