2016-07-02 5 views
0

BackColorとTextをデータベースから直接設定する必要がある100以上のasp.netボタンがあります。これを理解できれば、400行以上のSelect文を置き換えることができます。約10行のコードがあります。以下の変換方法のどちらも動作しない場合、If節の中のをvar cに置き換えることができます。WebControl.Buttonに文字列をキャストする方法

Sub Page_Load(sender As Object, e As EventArgs) 
    Dim taR As New DsReadyTableAdapters.taReady 
    Dim dtR As New DsReady.ReadyDataTable 
    taR.Fill(dtR) 
    Dim x As Integer = 1 
    Dim ss As String 
    Dim t As Type 
    For Each b In form1.Controls 
     t = b.GetType 
     If t.Name = "Button" Then 
      Dim c As System.Web.UI.WebControls.Button = CType(b.ID, System.Web.UI.WebControls.Button) 'tried both, doesn't work 
      Dim c As System.Web.UI.WebControls.Button = DirectCast(b.ID, System.Web.UI.WebControls.Button) 'tried both, doesn't work 
      ss = CStr(b.ID).Substring(6) 
      If ss > 122 And ss < 126 Then 
       b.ID.BackColor = Drawing.ColorTranslator.FromHtml(dtR(x).Color) 'b.ID is string so doesn't work 
       b.ID.Text = dtR(x).Num 
       x += 1 
      End If 
     End If 
    Next b 
End Sub 

私もちょうどボタンに結果を絞り込むことFor Each文でControls.OfType句を使用してみましたが、無駄にしています。私はjQueryでもこれをやりたいと思っていますが、私が使っているものと同じくらい簡単なデータをデータベースから取得する簡単な方法は見つけられていません。あなたの助けが大変ありがとうございます。

答えて

0

を試すには、実際に私は、HTML要素、この場合は、ボタンを繰り返し処理、jQueryのは、これを達成するために簡単な簡単な方法を提供することを発見しました。見つけようとしているボタンにクラス名を追加します。ご協力いただきありがとうございます。

function dealer() { // for Deal 
     var i = 0; 
     $('.deal').each(function(){ //need class="deal" 
      var chit = deal[i]; 
      if (chit.length == 2) { 
       var v = chit.slice(0, 1); 
       var c = chit.slice(1); 
      } else { // 3 
       var v = chit.slice(0, 2); 
       var c = chit.slice(2); 
      } 
      (this.value) = v; // Number 
      switch (c) { 
       case "r": 
        (this.style.backgroundColor) = "red"; // Color 
        break; 
       case "b": 
        (this.style.backgroundColor) = "lightblue"; 
        break; 
       case "g": 
        (this.style.backgroundColor) = "gray"; 
        break; 
       case "o": 
        (this.style.backgroundColor) = "orange"; 
        break; 
      } // switch 
      i++; 
      event.preventDefault(); 
     }); //deal 
    }; // dealer 
0

Dim button As Button = CType(form1.Controls["your_button_name"], Button) 
+0

「For Each」ステートメントの前に、コードに正確に入れておきますか?私はすべてのボタンを反復しようとしているので、 'your_button_name'をどのように使うことができないのか分かりません。ありがとう – NitroMuse

+0

"試してください"答えのための適切な説明ではありません。コードのみのソリューションは品質の低いコンテンツとみなされ、回答が削除される可能性があります。 –

+0

あなたのループに入れて、your_button_name = b.ID – Jack

関連する問題