2016-12-29 4 views
0

Asp: КодКак получить доступ к элементам управления Asp внутри статического метода?

<asp:TextBox ID="TextBox1" runat="server" ReadOnly="true"></asp:TextBox> 
<asp:TextBox ID="TextBox2" runat="server" ReadOnly="true"></asp:TextBox> 

C#:

[System.Web.Services.WebMethod] 
public static Array LoadAssetAssignView() { 
string sql = "SELECT Time,Inuse FROM table4"; 
using(SqlConnection Connection = new SqlConnection((@ "Data Source"))) { 
    using(SqlCommand myCommand = new SqlCommand(sql, Connection)) { 
    Connection.Open(); 
    using(SqlDataReader myReader = myCommand.ExecuteReader()) { 
    DataTable dt = new DataTable(); 
    dt.Load(myReader); 
    Connection.Close(); 
    Num1 = textbox1.text; //Error(Can't access my asp control) 
    Num2 = textbox2.text; 
    } 
    } 
} 
} 

В моей Asp Page я включал в себя два текстовые поля для моего requirement.But В моем заднем конце, я не могу получить доступ к текстовому полю в статическом методе. Предложите некоторые идеи. Оцениваются ответы, а не комментарии.

+2

сделать его нестатичным – Backs

+0

Возможный дубликат [Как получить доступ к элементам управления страницей внутри статического метода в ASP.net] (http://stackoverflow.com/questions/31514188/how-to-access-page-controls- inside-a-static-method-in-asp-net) – Danieboy

+0

Вы не можете использовать элементы управления в webservice. Если я не ошибаюсь, вы пытаетесь использовать его в веб-сервисах. Вместо этого передаются значения непосредственно в качестве параметров в методе –

ответ

4

Попробуйте это!

[System.Web.Services.WebMethod] 
      public static Array LoadAssetAssignView() 
       { 
       string sql = "SELECT Time,Inuse FROM table4"; 
       using (SqlConnection Connection = new SqlConnection((@"Data Source"))) 
        { 
        using (SqlCommand myCommand = new SqlCommand(sql, Connection)) 
         { 
          Connection.Open(); 
          using (SqlDataReader myReader = myCommand.ExecuteReader()) 
          { 
           DataTable dt = new DataTable(); 
           dt.Load(myReader); 
           Connection.Close(); 
           Page page = (Page)HttpContext.Current.Handler; 
           TextBox TextBox1 = (TextBox)page.FindControl("TextBox1"); 
           TextBox TextBox2 = (TextBox)page.FindControl("TextBox2"); 
           Num1=TextBox1 .text; 
           Num2=TextBox2 .text; 
        } 
       } 
      } 
     } 

См. this.

Смежные вопросы