Jag har en gridview. I gridviewen finns bla en radiobutton på varje rad. När man checkar denna vill jag leta upp en textbox inom raden och disabla denna textbox.
Hur kan jag koppla på ett event till en radiobutton som finns i en gridview?
Protected Sub RadioButton1_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs)
Dim rb As RadioButton = TryCast(sender, RadioButton)
Dim CurrentRow As GridViewRow = rb.NamingContainer
Dim T As TextBox = CType(CurrentRow.FindControl("TextBox1"), TextBox)
T.Text = "yepp"
End Sub
så skrivs ett glatt 'yepp' ut i vald textbox, dvs man kan även dölja/inaktivera den.
fast frågan är om inte en kryssruta är bättre eftersom en radiobutton inte kan "avbockas" när den väl är vald om den förekommer ensam
Men går det att lösa det hela clientside istället? Så att man inte behöver posta om hela formuläret?
Borde det inte fungera med att anropa en js-funktion som tar emot namnet på kontrollen, i javascriptet leta upp kontrollen, ta reda på dess förälder och disbla denna?
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
Dim cb As CheckBox = CType(e.Row.FindControl("checkbox1"), CheckBox)
Dim T As TextBox = CType(e.Row.FindControl("TextBox1"), TextBox)
cb.Attributes.Add("onclick", String.Format("Disabletextbox({0},{1})", cb.ClientID, T.ClientID))
End If
End Sub
och sen knåpa ihop ett javascript som kollar statusen på checkboxen och sen sätter enabled/disabled på textboxen