1

我正在使用 VS 2010(框架 4.0)和 rad/telerik 控件进行网站开发。场景是我有 radwindow 弹出窗口,实际上是一个确认消息框。根据决定,我必须再次调用必须调用相应函数的基本页面。在这里,我想设置 Country dropdownlist 和 state dropdowlist。我在 Radwindow 的 OnClientClose 事件上的 javascript 函数中调用服务器端事件,并在服务器端函数中调用相应的函数来设置表单字段,其中我也设置了 Country 和 State 列表。但是当我尝试设置 Country selected 值时,尽管下拉列表中有项目,但它不会被选中。这是代码,

Javascript函数

function OnradWndConfirmSelfOwnerClose(oWnd) {
            var hdn = document.getElementById("<%= hdnIsOwner.ClientID %>");
            try {
                var arg = oWnd.argument;
                if (arg == "YES") {
                    hdn.value = 'true';
                }
                else {
                    hdn.value = 'false';
                }
                __doPostBack('<%=this.btnInitializeOwnerForm.UniqueID %>', '');
            }
            catch (err) { }
        }

服务器端功能,

protected void btnInitializeOwnerForm_Click(object sender, EventArgs e)
        {
            bool IsOwner = !String.IsNullOrEmpty(hdnIsOwner.Value) ? Convert.ToBoolean(hdnIsOwner.Value) : false;
            if (IsOwner)
            {
                SaveOwner();
            }
            else
            {
                InitializeOwnerData();
            }
        }

并且在 InitializeOwnerData() 中调用了 SetDefaultFields() 函数,

private void SetDefaultFields(ApplicationAccessInfo objAAInfo)
        {
            //Set Company Information fields
            txtOrganizationName.Text = objAAInfo.EntityorOrganization;
            txtCompanyWebsite.Text = objAAInfo.CompanyWebsite;
            txtStreetAddress.Text = objAAInfo.StreetAddrees;
            txtOfficeNumber.Text = objAAInfo.SuiteorOfficeNumber;
            txtCity.Text = objAAInfo.City;

            if (Guid.Empty != objAAInfo.CompanyCountryId)
            {
                **ddlCountry.Items.FindByValue(objAAInfo.CompanyCountryId.ToString()).Selected = true;**
                PopulateStateList();
                if (ddlCountry.SelectedItem.Value != "0")
                    **ddlState.Items.FindByValue(objAAInfo.CompanyStateId.ToString()).Selected = true;**
            }

            txtPostalCode.Text = objAAInfo.PostalCode;

            //Disable Company Information fields
            txtCompanyWebsite.Enabled = false;
            txtOrganizationName.Enabled = false;
            txtStreetAddress.Enabled = false;
            txtOfficeNumber.Enabled = false;
            txtCity.Enabled = false;
            txtPostalCode.Enabled = false;
            ddlCountry.Enabled = false;
            ddlState.Enabled = false;
        }

项目未在 ddlCountry.Items.FindByValue(objAAInfo.CompanyCountryId.ToString()).Selected = true 被选中,因此最终出错,ddlState.Items.FindByValue(objAAInfo.CompanyStateId.ToString()).Selected = true;

请注意,当我正常调用同一个函数时,一切正常。在这种情况下,我在 Country 列表中找到了 Items,并且 objAAInfo.CompanyCountryId 也在列表中。

请帮我解决这个问题

4

0 回答 0