webForumDet fria alternativet

Gridview med radiobutton - event

4 svar · 441 visningar · startad av invecklaren

invecklarenMedlem sedan jan. 2008280 inlägg
#1

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?

rhdfMedlem sedan okt. 2007446 inlägg
#2

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

invecklarenMedlem sedan jan. 2008280 inlägg
#3

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?

rhdfMedlem sedan okt. 2007446 inlägg
#4

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

invecklarenMedlem sedan jan. 2008280 inlägg
#5

Tack, det borde ju gå att lösa. Testar och återkommer!

131 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)