2012-02-27 2 views
0

내 요구 사항은 드롭 다운에서 값을 선택하고 해당 세 필드를 가져오고 드롭 다운에 선택한 값이 있어야합니다. 그러나 내 코드는 해당 세 필드를 반입하고 선택된 값을 첫 번째 값으로 설정합니다. 이 문제를 해결하려면 전화하십시오. 다음은 왜 게시물을 삭제 한 후 드롭 다운이 재설정 되나요?

페이지로드 및 대응 방법에 내 코드입니다 :

공공 부분 클래스 RegisterWebPartUserControl : UserControl을 { 문자열 titleid;

protected void Page_Load(object sender, EventArgs e) 
{ 
DataSet ds = new DataSet(); 
SPSite oSPSiteCollection = SPContext.Current.Site; 
SPWeb oSPWeb = SPContext.Current.Web; 
SPList oSPList = oSPWeb.Lists["Registered"]; 
string names = oSPWeb.CurrentUser.ToString(); 
TxtEmployeeName.Text = names.ToString(); 
SPList oSPListCalender = oSPWeb.Lists["Scheduled Courses"]; 
DataTable dataTable = oSPListCalender.Items.GetDataTable(); 
dataTable.TableName = "Table1"; 
ds.Tables.Add(dataTable); 
ddlDrop.DataSource = ds.Tables["Table1"]; 
ddlDrop.DataTextField = "Title"; 
ddlDrop.DataValueField = "TitleID"; 
titleid = ddlDrop.SelectedValue; 
ddlDrop.DataBind(); 
} 
protected void ddlDrop_SelectedIndexChanged(object sender, EventArgs e) 
{ 
FetchReadOnlyFields(titleid); 
} 
public void FetchReadOnlyFields(string titleID) 
{ 
string oStartDate = null; 
string oEndDate = null; 
string oPrerequisite = null; 
SPSite oSPSiteCollection = SPContext.Current.Site; 
SPWeb oSPWeb = SPContext.Current.Web; 
SPList oSPList = oSPWeb.Lists["Registered"]; 
SPListItemCollection oItemCollection = oSPList.Items; 
SPListItem ospListItem = oItemCollection.Add(); 
SPList oSPList1 = oSPWeb.Lists["Scheduled Courses"]; 
SPListItemCollection oItemCollectionCourse = oSPList1.Items; 
SPFieldCalculated titleIDCourse = (SPFieldCalculated)oItemCollectionCourse.Fields["TitleID"]; 
SPField fieldStartDate = oItemCollectionCourse.Fields["Start Date"]; 
SPField fieldEndDate = oItemCollectionCourse.Fields["End Date"]; 
foreach (SPListItem ospListItemCourse in oItemCollectionCourse) 
{ 
string value = titleIDCourse.GetFieldValueAsText(ospListItemCourse["TitleID"]); 
if (titleID == value) 
{ 
oPrerequisite = ospListItemCourse["Prerequisite"].ToString(); 
TxtPrerequisite1.Text = SPHttpUtility.ConvertSimpleHtmlToText(oPrerequisite, oPrerequisite.Length); 
oStartDate = ospListItemCourse["Start Date"].ToString(); 
TxtStartDate.Text = oStartDate; 
oEndDate = ospListItemCourse["End Date"].ToString(); 
TxtEndDate.Text = oEndDate; 
break; 
} 
} 
} 
} 

도움을 요청하십시오. 는

답변

1

에게

ddlDrop.DataBind(); 

한 번만 호출해야이 코드 감사드립니다. 페이지의 첫 번째로드시. 시도

protected void Page_Load(object sender, EventArgs e) 
{ 
if(!Page.IsPostBack){ // this is what has changed 
DataSet ds = new DataSet(); 
SPSite oSPSiteCollection = SPContext.Current.Site; 
SPWeb oSPWeb = SPContext.Current.Web; 
SPList oSPList = oSPWeb.Lists["Registered"]; 
string names = oSPWeb.CurrentUser.ToString(); 
TxtEmployeeName.Text = names.ToString(); 
SPList oSPListCalender = oSPWeb.Lists["Scheduled Courses"]; 
DataTable dataTable = oSPListCalender.Items.GetDataTable(); 
dataTable.TableName = "Table1"; 
ds.Tables.Add(dataTable); 
ddlDrop.DataSource = ds.Tables["Table1"]; 
ddlDrop.DataTextField = "Title"; 
ddlDrop.DataValueField = "TitleID"; 

ddlDrop.DataBind(); 
} 

titleid = ddlDrop.SelectedValue; 
} 
관련 문제