2017-12-18 5 views
0

내가 (테이블, 열, new_columns를) 내 웹 응용 프로그램에있는 gridview를있는 gridview에서 데이터를 추가 (웹 응용 프로그램)이 그리드 뷰 3 열 표시하도록되어</p> <p>C#

enter image description here

내가 원하는 첫 번째 필드 (테이블)의 모든 테이블을 바인딩하고 gridview 내의 드롭 다운 목록에서 각 테이블의 각 열을 바인딩하고 두 번째 드롭 다운 목록의 모든 새 열을 바인딩하려는 클릭 이벤트에서 그리드보기를 표시하려면

여기있다. 전자 코드

 DataTable test = new DataTable(); 
     DataTable _dbtest = new DataTable(); 
     list_of_table_of_old_database = db.Select("", "", "", "", "", "", "", "", "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.tables WHERE TABLE_SCHEMA = '" + old_database.Text.Trim() + "' ", ""); 
     list_of_table_of_current_database = db.Select("", "", "", "", "", "", "", "", "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.tables WHERE TABLE_SCHEMA = '" + new_database.Text.Trim() + "' ", ""); 

     DataView view = new DataView(list_of_table_of_old_database); 


     DataTable dtTable = new DataTable(); 


     test = db.Select("", "", "", "", "", "", "", "", "select distinct k.table1 from (SELECT TABLE_NAME as table1 FROM INFORMATION_SCHEMA.tables WHERE TABLE_SCHEMA = '" + old_database.Text.Trim() + "') as k INNER JOIN (SELECT TABLE_NAME as table2 FROM INFORMATION_SCHEMA.tables WHERE TABLE_SCHEMA = '" + new_database.Text.Trim() + "')as a;", ""); 




     DropDownList3.Items.Clear(); 
     DropDownList3.Items.Insert(0, "--select--"); 

     DataTable dt = new DataTable(); 
     for (int i = 0; i < test.Rows.Count; i++) 
      { 

       _dbtest = db.Select("", "", "", "", "", "", "", "", "select a.fieldname from (SELECT COLUMN_NAME as fieldname FROM INFORMATION_SCHEMA.columns WHERE TABLE_SCHEMA = '" + old_database.Text.Trim() + "' and TABLE_NAME = '" + test.Rows[i][0].ToString() + "') as A LEFT JOIN (SELECT COLUMN_NAME as fieldname FROM INFORMATION_SCHEMA.columns WHERE TABLE_SCHEMA = '" + new_database.Text.Trim() + "' and TABLE_NAME = '" + test.Rows[i][0].ToString() + "') B on (A.fieldname = B.fieldname) where B.fieldname is null ", ""); 

       if (_dbtest.Rows.Count > 0) 
       { 

        //here i want to display all tables in the gridview row by row (test.Rows[i][0].ToString()) 


       } 

        // and i want to bind all columns (_dbtest) of each tables inside the loop in first dropdownlist in gridview 

       // and same columns (_dbtest) of each tables inside the loop in second dropdownlist in gridview 
      } 

내가 루프를 실행하고있는 동안의 gridview에서 데이터를 바인딩하는 몇 가지 방법을 찾으려면, 그래서 올바른 데이터를 각 필드를

을 줄 수 있으며, 이는 HTML 코드

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
     Height="237px" Width="632px" onrowdatabound="GridView1_RowDataBound"> 
     <Columns> 
      <asp:TemplateField FooterText="tables" HeaderText="tables"> 
       <EditItemTemplate> 
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
       </EditItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField FooterText="columns" HeaderText="columns"> 
       <ItemTemplate> 
        <asp:DropDownList ID="ddlcolumns" runat="server" 
         Height="16px" Width="181px"> 
        </asp:DropDownList> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField FooterText="vms-columns" HeaderText="vms-columns"> 
       <ItemTemplate> 
        <asp:DropDownList ID="ddl_vms_columns" runat="server" 
         Height="20px" Width="153px"> 
        </asp:DropDownList> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
    </asp:GridView> 
입니다

그렇게 말에,이 그리드 뷰 그리드 뷰의 모든 테이블과

답변

0

첫 번째 단계는 모든 테이블을로드하고있는 gridview에 바인딩입니다 테이블의 각 열을 표시합니다. 이를 위해 GridView1_RowDataBound 이벤트를 사용하지 마십시오.

테이블을로드 한 후 GridView1_RowDataBound 이벤트를 사용하여 DropDownLists를 채울 수 있습니다. 당신은 어떻게 설명하는 몇 가지 예를 찾을 수 :

https://www.aspsnippets.com/Articles/How-to-populate-DropDownList-in-GridView-in-ASPNet.aspx

https://codepedia.info/bind-dropdownlist-inside-gridview-edit-template/