我在这个有用的帖子中使用了一段简单的代码
它使用一个按钮和一个标签,标签应报告"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) 我知道我们可以使用以下代码设置各种样式属性:
divControl.Style("height") = "200px"
Run Code Online (Sandbox Code Playgroud)
但是如何设置它的类而不是从代码中声明每个样式?
到目前为止,我已经尝试了在网上和网上其他地方找到的一些不同的解决方案.也许你们其中一个知识渊博的人可能会帮助...
我有一堆由用户动态创建的控件,我将其作为控件集合存储在会话状态中,因此我可以在每次回发时显示它们.
用户生成的每个控件都是一个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) 我有一个关于是否可以做某事的一般性问题 - 以及它是否是最有效的方式!
总结一下:我可以将对象集合作为参数传递给存储过程吗?
假设我有一个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) 我正在从数据库模式构建一大堆不同的控件.当我在后面的代码中运行控件时,我想将控件和样式(作为数据库中的字符串...例如"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'的成员我明白错误意味着什么,但有没有人知道这方面的方法?
非常感谢,斯科特
有谁知道如何清除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) 我想说这个属性是否为(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语句,这将导致它出错
我认为这应该很简单,但我一直遇到问题.我只想从位于日期范围之间的表中返回所有数据.但我希望日期范围是可选的.
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走错了路吗?
asp.net ×5
c# ×4
vb.net ×4
sql-server ×2
attributes ×1
checkboxlist ×1
clone ×1
if-statement ×1
performance ×1
sql ×1
styles ×1