小编as-*_*cii的帖子

ASP.NET DropDownList上的FindByValue

我在自定义用户控件中有以下代码,其中包含名为ddlAggerationUnitId的DropDownList.DropDownList是Page_Load()事件上的DataBind."值"设置为40并且它存在.如果我删除set方法的逻辑,页面将加载并选择正确的项目,但如果值为false,则页面会抛出异常.我想通过在尝试设置它之前查看值是否存在来避免该异常,因此逻辑是必要的.

现在,看起来编译器正在将if语句评估为false,即使我知道它应该是真的.

public long? Value
{
    get { return Int64.Parse(ddlAggerationUnitId.SelectedItem.Value); }
    set
    {
        if (ddlAggerationUnitId.Items.FindByValue(value.ToString()) != null)
        {
            ddlAggerationUnitId.SelectedValue = value.ToString();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!谢谢!

编辑:这是我的Page_Load()事件:

protected void Page_Load(object sender, EventArgs e)
{
    ddlAggerationUnitId.DataSource = ExternalAccount.GetAggregationUnits();
    ddlAggerationUnitId.DataTextField = "Value";
    ddlAggerationUnitId.DataValueField = "Key";
    ddlAggerationUnitId.DataBind();
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net selecteditem drop-down-menu

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

Silverlight 4线程问题

最近我一直在Silverlight中开发一个使用上传的应用程序.
我使用WebClientclass与HttpHandler我服务器中的一个进行通信.提供的方法WebClient是异步的并且使用基于事件的APM:考虑到Silverlight的范围是具有流畅的UI,不会阻止我想要的,有趣的是,尝试使调用同步.

AutoResetEvent _uploadedEvent = new AutoResetEvent(false);

foreach (var item in _fileInfos)
        {
            WebClient client = new WebClient();

            client.OpenWriteCompleted += (sender, e) =>
            {
                try
                {
                    using (FileStream fs = item.OpenRead())
                    using (Stream stream = y.Result)
                    {
                        while (true)
                        {
                            byte[] buffer = new byte[8192];

                            int readBytes = fs.Read(buffer, 0, buffer.Length);
                            if (readBytes == 0)
                                break;

                            stream.Write(buffer, 0, readBytes);
                        }
                    }
                }
                finally
                {
                    _uploadedEvent.Set();
                }
            };

            client.OpenWriteAsync(new Uri(_receiverUri));

            _uploadedEvent.WaitOne();
        }
Run Code Online (Sandbox Code Playgroud)

问题

这种使调用同步的方法在Silverlight中不起作用,但它在WPF中起作用.现在我注意到我不是唯一一个遇到这个问题的人: …

c# silverlight events multithreading

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