ASP.net - ButtonField in een GridView in een UpdatePanel

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Verbeemen
  • Registratie: Juli 2009
  • Laatst online: 11-05-2023
.ASPX
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
<%@ Page Title="" Language="C#" MasterPageFile="~/Bierbeurs.master" AutoEventWireup="true"
    CodeFile="BeursBestelling.aspx.cs" Inherits="BeursBestelling" Theme="Bierbeurs" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
       <asp:UpdatePanel ID="ajax2" runat="server">
        <ContentTemplate>  
            <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"
                OnPageIndexChanging="GridView1_PageIndexChanging" DataKeyNames="ID" OnSelectedIndexChanged="GridView1_SelectedIndexChanged"
                OnRowCommand="GridView1_RowCommand">
                <Columns>
                    <asp:TemplateField HeaderText="Product">
                        <ItemTemplate>
                            <%#Eval("Product.Name") %>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField DataField="PurchaisePrice" HeaderText="Verkoop" />
                    <asp:BoundField DataField="SellingPrice" HeaderText="Selling" />
                    <asp:ButtonField ButtonType="Button" CommandName="ButtonPlus" Text="--" />
                    <asp:TemplateField HeaderText="Aantal">
                        <ItemTemplate>
                            <asp:TextBox ID="TextboxAantal" class="textboxAantal" runat="server">0</asp:TextBox>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:ButtonField ButtonType="Button" CommandName="ButtonMin" Text="++" />
                </Columns>
                <PagerSettings Mode="NextPreviousFirstLast" />
          </asp:GridView>
          </ContentTemplate>
    </asp:UpdatePanel> -
</asp:Content>
 



.ASPXC
C#:
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
 
    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName.CompareTo("ButtonPlus") == 0 ||
               e.CommandName.CompareTo("ButtonMin") == 0)
        {
            TextBox textboxAantal = (TextBox)(GridView1.Rows[Int32.Parse(e.CommandArgument.ToString())].Cells[3].FindControl("TextboxAantal"));

            int aantal = Int32.Parse(textboxAantal.Text);
            aantal++;
            textboxAantal.Text = aantal.ToString();
            textboxAantal.DataBind();
         }
    }
 


Beste

Ik heb een probleem met een project in ASP.net
In gridview1 wordt er een tabel gegenereerd met 2 knoppen (ButtonFields) in, ButtonMin en ButtonPlus .
Als je op 1 van deze twee knoppen duwt zal ''TexBoxAantal met 1 verhogen of verlagen.

Dit werkt maar de pagina wordt telkens gerefreshed en is in deze opstelling niet handig.

- Maar als ik een UpdatePanel rond deze GridView zet, dan wil hij niks meer uitvoeren, (krijg ook geen error)


Is er iemand die dit fenomeen ook al ondervonden heeft? en opgelost?


Als ik een trigger toepas:
<Triggers> <asp:AsyncPostBackTrigger ControlID="ButtonPlus" EventName="Click" /> </Triggers>
dan krijg ik de error:
Property 'Triggers' does not have a property named 'AsyncPostBackTrigger'.
of
Property 'Triggers' does not have a property named 'ControlID'.
+ Ik heb al enkele uren gegoogled

Alvast bedankt

Acties:
  • 0 Henk 'm!

  • Sand0rf
  • Registratie: Oktober 2005
  • Laatst online: 12:16
updatemode="always" al geprobeerd in het updatepanel?

p.s. Je code in code tags zetten maakt het een stuk leesbaarder

[ Voor 58% gewijzigd door Sand0rf op 27-11-2011 00:37 ]

/post


Acties:
  • 0 Henk 'm!

  • C0rnelis
  • Registratie: Juni 2010
  • Laatst online: 26-08 22:21
Als eerste: gebruik code tags!

Dan on-topic:
Ik ben geen expert in asp, maar werkt het niet via postbacks? Elke postback betekent standaard een refresh dacht ik. Aangezien de code die het document (in dit geval een cijfer in een tekstvak) aanpast aan de serverkant staat en wordt uitgevoerd, lijkt me dat dit niet mogelijk is. Ik denk dat je dan moet zoeken naar een oplossing in JavaScript (Of je moet iets zien uit te vogelen i.c.m. AJAX en het aanroepen van server side code.

Iets anders: waar heb je zoal op gegoogled. Nu ik eventjes kijk op asyncpostbacktrigger, kom ik bijvoorbeeld uit op o.a. http://www.asp.net/ajax/t...ajax-updatepanel-triggers waar het dus via AJAX gaat. Zoek je zoiets?

[ Voor 19% gewijzigd door C0rnelis op 27-11-2011 00:38 ]


Acties:
  • 0 Henk 'm!

  • Verbeemen
  • Registratie: Juli 2009
  • Laatst online: 11-05-2023
Beste

De code tag is toegevoegd

Dat van die "ASP.NET AJAX UpdatePanel Triggers" heb ik al eens geprobeerd
en dan krijg ik die 2 onderstaande errors.

Toch bedankt

http://bierbeurs.be/beursBestelling.aspx

Acties:
  • 0 Henk 'm!

  • asfaloth_arwen
  • Registratie: Februari 2005
  • Laatst online: 10:53
Zou je eens code willen posten met de triggers erin?

Specs


Acties:
  • 0 Henk 'm!

  • Mastermind
  • Registratie: Februari 2000
  • Laatst online: 13-09 21:30
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName.CompareTo("ButtonPlus") == 0 ||
               e.CommandName.CompareTo("ButtonMin") == 0)
        {
UpdatePanel up = this.FindControl("ajax2") as UpdatePanel;
GridView gv = up.FindControl("GridView1") as GridView;            
TextBox textboxAantal = (TextBox)(gv.Rows[Int32.Parse(e.CommandArgument.ToString())].Cells[3].FindControl("TextboxAantal"));

            int aantal = Int32.Parse(textboxAantal.Text);
            aantal++;
            textboxAantal.Text = aantal.ToString();
            // textboxAantal.DataBind();
         }
    }

Acties:
  • 0 Henk 'm!

  • Verbeemen
  • Registratie: Juli 2009
  • Laatst online: 11-05-2023
Sorry Mastermind, dat werkt ook niet.
+
Een trigger uitvoeren is nogal vreemd. Want in de voorbeelden die ik gevonden heb, heb je:

- UpdatePanel1 -
-- Button
- Einde UpdatePanel1 -

- UpdatePanel2 -
-- Label
trigger-Button
-Einde UpdatePanel2-

---------
Maar bij mij zou het meer

-Updatepanel1-
Button
label
<Trigger Button >
-Einde updatePanel1-

zijn, maar werkt niet
&
-UpdatePanel1-
button
-updatePanel2-
label
<trigger button>
-einde UpdatePanel2-
-einde UpdatePanel1-

werkt ook niet

Acties:
  • 0 Henk 'm!

  • Verbeemen
  • Registratie: Juli 2009
  • Laatst online: 11-05-2023
Fout gevonden,

Bij de updatepanel werd er constant een Cookie aangemaakt en dat had hij niet zo graag.

Topic mag gesloten worden
Pagina: 1