2015-09-28 120 views
0

這是我的登錄頁面下拉列表的文本,假定用戶名和密碼是正確的,並使用會話中獲取一定的數據:在另一個獲得從生成的列表項

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data.SqlClient; 
using MSSQLConnector; 
using System.Data; 

namespace SoftwareAnalysisAndDesign.SAD 
{ 
    public partial class OnlineAppSyss : System.Web.UI.Page 
    { 
     private MSConnector connector = new MSConnector(); 
     string teachersubjectlistquery = null; 
     private DataSet teachersubjectlistData; 
     private DataTable teacheraccountdetailsTable; 

     protected void Page_Load(object sender, EventArgs e) 
     { 
     } 
     protected void Button1_Click(object sendet, EventArgs e) 
     { 
      Teacher(); 
     } 
     public void Teacher() 
     { 
      //Connection String 
      connector.ConnectionString = "Data Source=keith;Initial Catalog=SAD;Integrated Security=True"; 

      //Subject List     
      teachersubjectlistquery = "select distinct CourseNo from AssessmentForm where TeacherID =" + username + ""; 
      teachersubjectlistData = connector.ExecuteQuery(teachersubjectlistquery); 
      teachersubjectlistTable = teachersubjectlistData.Tables[0]; 
      Session["TeacherSubjectList"] = teachersubjectlistTable; 
     } 
    } 

我通過數據表「teachersubjectlistTable」頁面使用會話。

在我的教師頁面中,我聲明瞭使用會話[「TeacherSubjectList」]生成項目的下拉列表。

<asp:DropDownList runat="server" ID="SubjectList"></asp:DropDownList> 

其錨標記進行到ValidateSubject頁:

<a class="btn btn-block" style="margin-top:-37px;margin-left:65px;" runat="server" onserverclick="TeacherSubjects_Click">Proceed</a> 

和其背後的代碼:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data; 
using System.Data.SqlClient; 
using MSSQLConnector; 

namespace SoftwareAnalysisAndDesign.SAD 
{ 
    public partial class TeacherPage : System.Web.UI.Page 
    { 
     private MSConnector connector = new MSConnector(); 
     private DataSet SubjectlistData; 
     private DataTable SubjectlistTable; 
     string query = null; 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      //Populate The Select Tag with Subjects 
      SubjectList.DataSource = Session["TeacherSubjectList"]; 
      SubjectList.DataTextField = "CourseNo"; 
      SubjectList.DataValueField = "CourseNo"; 
      SubjectList.DataBind(); 
     } 
     protected void TeacherSubjects_Click(object sender, EventArgs e) 
     { 
      string getText = SubjectList.SelectedItem.Text; 
      //Connection String 
      connector.ConnectionString = "Data Source=keith;Initial Catalog=SAD;Integrated Security=True"; 

      query = "select StudentID,CourseNo,CourseDescription,Units,Day,StartTime,EndTime,Room,Instructor,Amount,Status from assessmentform where CourseNo = '" + getText + "'"; 

      SubjectlistData = connector.ExecuteQuery(query); 
      SubjectlistTable = SubjectlistData.Tables[0]; 

      //Add a colum check row 
      SubjectlistTable.Columns.Add("Check", Type.GetType("System.Boolean")); 

      Session["ValidateSubject"] = SubjectlistTable; 

      Response.Redirect("ValidateSubjectTeacher.aspx"); 
     } 
    } 
} 
在我的另一個aspx頁面(ValidateSubject)

,我宣佈的GridView爲持有人會議:

<asp:GridView runat="server" CssClass="table table-hover table-bordered" ID="ValidateSubject" Style="text-align: center"></asp:GridView> 

及其背後的aspx代碼:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace SoftwareAnalysisAndDesign.SAD 
{ 
    public partial class ValidateSubjectTeacher : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      ValidateSubject.DataSource = Session["ValidateSubject"]; 
      ValidateSubject.DataBind(); 
     } 
    } 
} 

我不能讓所選擇的項目在我的下拉列表(TeacherPage)它只會選擇第一項的數據。

在我的我的下拉列表(TeacherPage)兩個項目已通過使用查詢生成:

CmpE 515 
CmpE 516 

但是,當我選擇「CMPE 516」項目,點擊進入,顯示的數據是隻有「 CmpE 515「項目。如果用戶點擊某個項目,我的下拉列表中的其他項目/值如何顯示某些數據?

這個代碼在這裏:

string getText = SubjectList.SelectedItem.Text; 

只會得到文本「CMPE 515」數據,即使我選擇「CMPE 516」,然後點擊繼續。我如何獲得我的下拉列表中的其他項目?

回答

1

你不應該下拉綁定每次頁面加載,使用IsPostBack屬性來檢查,如果頁面加載的第一次,只有在這種情況下,結合您的下拉列表如下: -

protected void Page_Load(object sender, EventArgs e) 
{ 
    if(!IsPostBack) 
    { 
      //Populate The Select Tag with Subjects 
      SubjectList.DataSource = Session["TeacherSubjectList"]; 
      SubjectList.DataTextField = "CourseNo"; 
      SubjectList.DataValueField = "CourseNo"; 
      SubjectList.DataBind(); 
    } 
    } 

同樣適用於你的ValidateSubjectTeacher頁面。

+0

是否可以將if函數添加到不在page_load事件中的單擊事件按鈕中? –

+1

@laurencekeithalbano - 沒有找到你?按鈕點擊將反正是一個回發權?所以檢查這個屬性是沒有意義的。 –

+0

哦,它的工作! :)謝謝你, –