void RedisConfigUI::DoFillData() { CEditUI exampleEditUI; CComboUI exampleComboUI; RedisClient::TDicConfig::const_iterator it = m_dicConfig.begin(); RedisClient::TDicConfig::const_iterator itend = m_dicConfig.end(); for ( ; it!=itend; ++it) { CDuiString name = _T("redisconfig_"); CDuiString key = Base::CharacterSet::ANSIToUnicode(it->first).c_str(); CDuiString val = Base::CharacterSet::ANSIToUnicode(it->second).c_str(); name.Append(key); CControlUI* pCtl = GetPaintMgr()->FindControl(name); /// xml中未配置该项 if (pCtl == NULL) continue; if (pCtl->GetClass() == exampleEditUI.GetClass()) { CEditUI* pEdit = static_cast<CEditUI*> (pCtl); pEdit->SetText(val); } else if (pCtl->GetClass() == exampleComboUI.GetClass()) { CComboUI* pCombo = static_cast<CComboUI*> (pCtl); int idx = 0; if (val == _T("yes")) idx = 0; else if (val == _T("no")) idx = 1; else if (it->first == "loglevel") { string loglevel = it->second; if (loglevel == "debug") idx = 0; else if (loglevel == "verbose") idx = 1; else if (loglevel == "notice") idx = 2; else if (loglevel == "warning") idx = 3; } pCombo->SetInternVisible(true); pCombo->SelectItem(idx); pCombo->SetFocus(); } } }