Avatar billede mrpalermo Nybegynder
02. marts 2006 - 11:24 Der er 18 kommentarer og
1 løsning

Læse værdi af celle ved edit i gridview

Jeg har et gridview, hvor jeg gerne vil læse en værdi i en celle, inden jeg tager stilling til, om cellen må redigeres eller ej. Cellen er der skal læses i et ikke skjult.

Jeg har lavet en eventhandler i min code behind fil:
AddHandler GridView1.RowEditing, AddressOf GridView1_RowEditing

Funktionen som kaldes ved eventen er:

    Sub GridView1_RowEditing(ByVal sender As Object, ByVal e As GridViewEditEventArgs)

        Dim customersGridView As GridView = CType(sender, GridView)

        Dim m_RowIndex As Integer
        m_RowIndex = e.NewEditIndex

        Dim m_ColumnText As String

        m_ColumnText = customersGridView.Rows(m_RowIndex).Cells(3).Text
        m_ColumnText = GridView1.Rows(m_RowIndex).Cells(3).Text

    End Sub

Jeg har prøvet både at bruge mit customersGridView objekt, og selve gridview1 objektet, men lige meget hjælper det.

Jeg har også prøvet at ændre Cells(3) til et par andre værdier. Mit m_RowIndex indeholder rigtigt nok en værdi.

Det skal lige siges, at jeg i mit gridview også benytter DataKeyNames, men den værdi som jeg ønsker at læse værdien af, er ikke med i DataKeyNames, da den ikke er skjult.

Hvad gør jeg galt?
Avatar billede dr_chaos Nybegynder
02. marts 2006 - 14:53 #1
prøv at fjerne :
m_ColumnText = GridView1.Rows(m_RowIndex).Cells(3).Text
Avatar billede mrpalermo Nybegynder
02. marts 2006 - 14:58 #2
Jeg har sat den ind, da jeg har lavet breakpoint, og tester om den ene eller anden metode retunerer et eller andet. Så det er ikke det der driller.
Avatar billede mrpalermo Nybegynder
02. marts 2006 - 14:59 #3
Både

m_ColumnText = customersGridView.Rows(m_RowIndex).Cells(3).Text

og

m_ColumnText = GridView1.Rows(m_RowIndex).Cells(3).Text

retunerer ""
Avatar billede dr_chaos Nybegynder
08. marts 2006 - 17:18 #4
hvordan ser dit gridview ud ?
Avatar billede dr_chaos Nybegynder
08. marts 2006 - 17:20 #5
du skal også kunne bruge
e.Row.Cells(3).Text
Avatar billede mrpalermo Nybegynder
09. marts 2006 - 09:55 #6
Du har hjulpet mig med det tidligere, dr_chaos... : http://www.eksperten.dk/spm/691573
Avatar billede dr_chaos Nybegynder
09. marts 2006 - 09:58 #7
kan jeg se.
Virkede mit foreslag ?
Avatar billede mrpalermo Nybegynder
09. marts 2006 - 10:16 #8
'Row' is not a member of 'System.Web.UI.WebControls.GridViewEditEventArgs'.
Avatar billede dr_chaos Nybegynder
09. marts 2006 - 10:23 #9
du skal bruge

Sub GridView1_RowEditing(ByVal sender As Object, ByVal e As GridViewEditEventArgs)

        Dim m_RowIndex As Integer
        m_RowIndex = e.NewEditIndex

        Dim m_ColumnText As String

        m_ColumnText = DitGridview.Rows(m_RowIndex).Cells(3).Text

    End Sub

Erstat DitGridview med det som dit gridview hedder.

Se evt. her:
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.gridviewediteventargs.aspx
Avatar billede mrpalermo Nybegynder
09. marts 2006 - 10:40 #10
Dit forslag er også det jeg skriver i selve spørgsmålet:

Funktionen som kaldes ved eventen er:

    Sub GridView1_RowEditing(ByVal sender As Object, ByVal e As GridViewEditEventArgs)

        'Dim customersGridView As GridView = CType(sender, GridView)

        Dim m_RowIndex As Integer
        m_RowIndex = e.NewEditIndex

        Dim m_ColumnText As String

        'm_ColumnText = customersGridView.Rows(m_RowIndex).Cells(3).Text
        m_ColumnText = GridView1.Rows(m_RowIndex).Cells(3).Text

    End Sub

Skal jeg prøve at post mit grid igen, hvis der skulle være nogle rettelser i det siden sidst?
Avatar billede mrpalermo Nybegynder
09. marts 2006 - 10:40 #11
<asp:GridView ID="GridView1" DataKeyNames="AllowEdit, Obligated, ProspectContentId" runat="server" DataSourceID="ObjectDataSource1" AutoGenerateColumns="False">
        <Columns>
            <asp:CommandField ShowEditButton="True" ButtonType="Image" CancelImageUrl="~/common/images/undo.png" DeleteImageUrl="~/common/images/document_delete.png" EditImageUrl="~/common/images/document_edit.png" UpdateImageUrl="~/common/images/disk_blue_ok.png" >
                <ItemStyle HorizontalAlign="Left" VerticalAlign="Top" />
            </asp:CommandField>
            <asp:CommandField ShowDeleteButton="True" DeleteImageUrl="~/common/images/document_delete.png" ButtonType="Image" >
                <ItemStyle HorizontalAlign="Left" VerticalAlign="Top" />
            </asp:CommandField>
            <asp:BoundField DataField="AllowEdit" ReadOnly="True" ShowHeader="False" Visible="False" />
            <asp:TemplateField>
                <ItemTemplate>
                  <asp:Label id="ItemName" Runat="Server"
                    Text='<%# TextParser(Eval("Content")) %>'/>
                </ItemTemplate>
                <EditItemTemplate>
                  <radE:RadEditor ID="Editor" Runat="server"                                                                   
                    Width="100%"               
                    Height="600px"
                    HasPermission="True"
                    Editable="True"                               
                    ImagesPaths="~/common/UserUploads/Images"
                    FlashPaths="~/common/UserUploads/Flash"
                    MediaPaths="~/common/UserUploads/Media"
                    DocumentsPaths="~/common/UserUploads/Documents"
                    SaveInFile="False"                   
                    ShowHtmlMode="False"
                    ShowSubmitCancelButtons = "false"
                    Html='<%# Bind("Content") %>' />
                </EditItemTemplate>
                <ItemStyle HorizontalAlign="Left" VerticalAlign="Top" Width="100%" />
              </asp:TemplateField>

        </Columns>
    </asp:GridView>
    <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetProspectContentByProspectId2"
        TypeName="DemosenderDataLayer"  DeleteMethod="DeleteProspectContent" UpdateMethod="UpdateProspectContent">

        <SelectParameters>
            <asp:QueryStringParameter Name="ProspectId" QueryStringField="ProspectId" Type="Int16" />
        </SelectParameters>
        <DeleteParameters>
          <asp:ControlParameter ControlID="GridView1" PropertyName="SelectedValue[2]" Name="ProspectContentId" Type="Int16"/>
            <asp:Parameter Name="AllowEdit" Type="Boolean" />
            <asp:Parameter Name="Obligated" Type="Boolean" />
        </DeleteParameters>
        <UpdateParameters>
            <asp:Parameter Name="Content" Type="String" />
            <asp:Parameter Name="AllowEdit" Type="Boolean" />
            <asp:Parameter Name="Obligated" Type="Boolean" />
            <asp:Parameter Name="ProspectContentId" Type="Int16" />
        </UpdateParameters>
       
    </asp:ObjectDataSource>
Avatar billede dr_chaos Nybegynder
09. marts 2006 - 10:43 #12
prøv lige at tjekke
GridView1.Rows(m_RowIndex).Cells.Count for at se hvor mange celler der er.
Hvilken et felt er det du vil have ud ?
Er det din itemtemplate ?
Avatar billede mrpalermo Nybegynder
09. marts 2006 - 11:14 #13
Jeg vil få content ud. Jeg ønsker at vide om ordet {ItemConfigurator} indgår i Content indholdet, da redigering af dette stump Content skal behandles på anden vis (en wizard skal gennemløbes), end resten af content stykkerne i GridView´et.

GridView1.Rows(m_RowIndex).Cells.Count = 4
Avatar billede dr_chaos Nybegynder
09. marts 2006 - 11:54 #14
brug noget med
customersGridView.Rows(m_RowIndex).Cells(3).FindControl("ItemName")

og parse det til et label
Avatar billede mrpalermo Nybegynder
09. marts 2006 - 14:19 #15
Det med at parse det til et label, forstår jeg ikke hlet hvad du mener? Har du et ex? Jeg skal nok smde flere points efter dig, hvis du leder mig på sporet til en løsning.
Avatar billede dr_chaos Nybegynder
09. marts 2006 - 14:27 #16
noget med
Dim ItemName As Label= CType(customersGridView.Rows(m_RowIndex).Cells(3).FindControl("ItemName"), Label)
Avatar billede mrpalermo Nybegynder
09. marts 2006 - 14:31 #17
Jeg går ud fra at FindControl("ItemName") i mit tilfælde skulle hedde FindControl("Content")  ??  Er det korrekt antaget?
Avatar billede mrpalermo Nybegynder
09. marts 2006 - 14:33 #18
For en i h........ du har sgu ret...FindControl("ItemName") virker lige i øjet...

Smid et svar...jeg takker mange gange
Avatar billede dr_chaos Nybegynder
09. marts 2006 - 14:33 #19
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester