Hej!
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?
4 svar · 441 visningar · startad av invecklaren
Hej!
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?
hmm
kolla på RowCommand..
sedan får du lura ut nåt sätt att fånga just radiobuttoneventet
Edit
näpp funkade inte nä..
lägger man denna i ett TemplateField i en Gridview
<asp:TextBox ID="TextBox1" runat="server" />
<asp:RadioButton ID="RadioButton1" AutoPostBack="true" runat="server"
oncheckedchanged="RadioButton1_CheckedChanged" />
och sen har
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
Hmm, det ser ju mycket fint ut.
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?
Mjo
Det borde ju gå
då får man dock göra det i
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
Tack, det borde ju gå att lösa. Testar och återkommer!