2013-04-05 10 views
0
설정되어 어디의 DataRow에 ButtonField를 저장하는 방법

다음 코드 내가 열이 ButtonField 설정되어있는 DataRow를에 ButtonField를 저장하려면 어떻게는 열이 ButtonField

protected void Button1_Click(object sender, EventArgs e) 
    { 
     DataTable dt = new DataTable(); 
     DataColumn dtCol = new DataColumn(); 

     dtCol = new DataColumn("Name", typeof(string)); 
     dt.Columns.Add(dtCol); 

     dtCol = new DataColumn("Address", typeof(string)); 
     dt.Columns.Add(dtCol); 

     dtCol = new DataColumn("Account No", typeof(ButtonField)); 
     dt.Columns.Add(dtCol); 

     ButtonField bfname = new ButtonField { 
      HeaderText = "Account No", 
      DataTextField="Account No", 
      Text = "Klik", 
      ButtonType = ButtonType.Link, 
      CommandName = "ExecuteMe" }; 

     string[] strDataRow = new string[3]; 


     for (int intX = 0; intX < 10; intX++) 
     { 
      strDataRow[0] = "Name" + Convert.ToString(intX); 
      strDataRow[1] = "Address" + Convert.ToString(intX); 
      strDataRow[2] = bfname.Text; //Error Type of value has a mismatch with column typeCouldn't store <Account No0> in Account No Column. Expected type is ButtonField. 
      ButtonField btnField = bfname; // No Error but not appear in GridView1 

      dt.Rows.Add(new object[] {strDataRow[0], strDataRow[1], strDataRow[2]}); 
      //dt.Rows.Add(new object[] { strDataRow[0], strDataRow[1], btnField }); // No Error but not appear in GridView1 

      /* Error Message on strDataRow[2] 
      Type of value has a mismatch with column typeCouldn't store <Account No0> in Account No Column. Expected type is ButtonField. 
      */ 

     } 

     GridView1.DataSource = dt; 
     GridView1.DataBind(); 

    } 

을 고려하십시오. ButtonField.Text 각 DataRow를

그리고

에 표시하는 방법이 가능 열이 ButtonField 설정되어있는 DataRow를에 문자열 값을 저장하는 것입니다. 문자열이 클릭되면 ButtonField.CommandName이 실행됩니다.

참고 : * : ASPX 페이지의 GirdView 코드는 다음과 같습니다. 귀하의 질문에 대한

+1

StackOverflow에 오신 것을 환영합니다! 코드를 줄이고 단 하나의 질문 만하면 유용한 대답을 얻을 가능성이 더 큽니다. – ASGM

답변

0

임 확실하지 않은,하지만 대신의 GridView를 생성하고이 포함 된 TemplateField를 추가하지 왜으로 불가능 suposed 무엇 DataTable을에 버튼을 넣어 앞서

<asp:GridView ID="GridView1" runat="server"> 
    </asp:GridView> 

감사합니다 ... 당신의 단추.

+0

글쎄, 나는 당신과 같은 의견을 가지고있다. 그러나 DataTable이 ButtonField의 타입을 받아 들일 수 있기 때문에, 나는 그것을 할 수있는 방법이 있어야한다고 믿는다. 그렇지 않으면 .NET Framework에서 ButtonField의 유형이 위의 코드 에서처럼 직접 받아 들일 수 없다는 것을 알 수 있도록이 문제를 해결해야합니다. – cahmad