Tôi gặp sự cố khi cố gắng lấy giá trị ValueMember mà tôi đã đặt. Tôi đang cố gắng sử dụng một combobox để chọn một báo cáo biểu mẫu cửa sổ. Tôi có thể lấy Tên nhưng không phải là RptValue. Đây là mã của tôi:Cách lấy giá trị ValueMember từ ComboBox C# Winforms?
private class Data
{
public string Name { get; set; }
public string RptValue { get; set; }
}
private void BaseForm_Load(object sender, EventArgs e)
{
this.rvDoctorReportViewer.RefreshReport();
comboBox1.Items.Add(new Data { Name="Select", RptValue="Select"});
comboBox1.Items.Add(new Data { Name = "All Food Values", RptValue = "AllFoodValues.rdlc" });
comboBox1.Items.Add(new Data { Name = "All Readings", RptValue = "AllReadings.rdlc" });
comboBox1.Items.Add(new Data { Name = "Avg Food Values by Date", RptValue = "AvgFoodValuesByDate.rdlc" });
comboBox1.Items.Add(new Data { Name = "Avg Food Values by Meal", RptValue = "AvgFoodValuesByMeal.rdlc" });
comboBox1.Items.Add(new Data { Name = "Avg Readings by Date", RptValue = "AvgReadingsByDate.rdlc" });
comboBox1.Items.Add(new Data { Name = "Avg Readings by Time", RptValue = "AvgReadingsByTime.rdlc" });
comboBox1.Items.Add(new Data { Name = "Avg Readings by Event", RptValue = "AvgReadingsByEvent.rdlc" });
comboBox1.Items.Add(new Data { Name = "Blood Pressure Chart", RptValue = "BPChart.rdlc" });
comboBox1.Items.Add(new Data { Name = "Blood Pressure Report", RptValue = "BPReport.rdlc" });
comboBox1.Items.Add(new Data { Name = "Detail Food Values by Meal", RptValue = "DetailFoodValuesByMeal.rdlc" });
comboBox1.Items.Add(new Data { Name = "Doctor Detail Report", RptValue = "DoctorDetailReport.rdlc" });
comboBox1.Items.Add(new Data { Name = "Food Chart", RptValue = "FoodChart.rdlc" });
comboBox1.Items.Add(new Data { Name = "Pumper Detail Report", RptValue = "PumperDetailReport.rdlc" });
comboBox1.Items.Add(new Data { Name = "Reading Charts", RptValue = "ReadingCharts.rdlc" });
comboBox1.Items.Add(new Data { Name = "Total Daily Food Intake", RptValue = "TotalIntakeDailyFood.rdlc" });
comboBox1.DisplayMember = "Name"; // This works fine
comboBox1.ValueMember = "RptValue"; // This is the problem. It renders as RptValue instead of the value
comboBox1.SelectedIndex = 0;
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex > 0)
{
string strReport;
strReport = "ReportViewer." + comboBox1.ValueMember.ToString();
rvDoctorReportViewer.Reset();
rvDoctorReportViewer.LocalReport.ReportEmbeddedResource = strReport;
this.rvDoctorReportViewer.RefreshReport();
}
}
Ok, bây giờ tôi nhận được một lỗi khác nhau trên tự báo cáo. Nó nói "Đã xảy ra lỗi trong quá trình xử lý báo cáo cục bộ. Định nghĩa báo cáo cho" reportname "chưa được chỉ định. Tham chiếu đối tượng không được đặt thành phiên bản của đối tượng". Bất kỳ ý tưởng? – bbcompent1
@ bbcompent1 Không thể nói bất cứ điều gì chắc chắn mà không nhìn thấy một số mã. :) Tôi đoán nó có cái gì để làm với 'ReportPath' (nhưng tôi không chắc chắn). Tôi sẽ khuyên bạn nên đăng câu hỏi mới về vấn đề cụ thể này. – MAV
Ok, sẽ làm. cảm ơn một lần nữa – bbcompent1