Avatar billede meho_tarevci Nybegynder
06. december 2005 - 13:33 Der er 19 kommentarer og
1 løsning

Skal sende indeholdet fra et GridView i en email

hvordan kan man sende indhold af database fra et datalist med email!?

jeg har en  gridview
------------------
id navn e-mail
------------------
1  navn2 email 2
------------------
2  navn2 email 2
------------------
3  navn3 email 3
------------------

kan jeg så vælge id nr.2 og sende indholdet med email?
Avatar billede dr_chaos Nybegynder
06. december 2005 - 13:36 #1
du kan lave en knap og så sætte commandname til id.
Avatar billede meho_tarevci Nybegynder
06. december 2005 - 13:40 #2
jeg har lavet følgende:

<asp:HyperLinkField Text="Send mail" DataNavigateUrlFields="id" DataNavigateUrlFormatString="ExpressMail.aspx?id={0}" />


og den viser oplysninger, MEN den viser altid id nr.1
det er lige meget om jeg klikker på id nr 2 eller 3 den viser altid nr 1
Avatar billede dr_chaos Nybegynder
06. december 2005 - 13:42 #3
vis lige kode til hele gridview.
Avatar billede meho_tarevci Nybegynder
06. december 2005 - 13:46 #4
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="2"
        DataKeyNames="id" DataSourceID="AccessDataSource1" ForeColor="#333333" GridLines="None"
        AllowSorting="True" CellSpacing="1" HorizontalAlign="Left">
        <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
        <Columns>
            <asp:HyperLinkField Text="Send mail" DataNavigateUrlFields="id" DataNavigateUrlFormatString="ExpressMail.aspx?id={0}" />
            <asp:CommandField ButtonType="Button" DeleteText="  Slet  " ShowDeleteButton="True" />
            <asp:BoundField DataField="id" HeaderText="ID" InsertVisible="False" ReadOnly="True"
                SortExpression="id" />
            <asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" />
            <asp:BoundField DataField="navn" HeaderText="navn" SortExpression="navn" />
            <asp:BoundField DataField="e-mail" HeaderText="e-mail" SortExpression="e-mail" />
           
        </Columns>
        <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
        <EditRowStyle BackColor="#999999" />
        <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
        <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
        <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
        <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
    </asp:GridView>
    <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/Mail.mdb"
        SelectCommand="SELECT * FROM [Mail]"
        DeleteCommand="DELETE FROM [Mail] WHERE [id] = @id">
        <DeleteParameters>
            <asp:Parameter Type="Int32" Name="id"></asp:Parameter>
        </DeleteParameters>
    </asp:AccessDataSource>
Avatar billede meho_tarevci Nybegynder
06. december 2005 - 13:50 #5
og her bliver den vælgte oplysninger vist


<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" BackColor="#DEBA84"
        BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" CellPadding="3" CellSpacing="2"
        DataKeyNames="id" DataSourceID="AccessDataSource1" Height="50px" Width="125px">
        <FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />
        <EditRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />
        <RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
        <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
        <Fields>
            <asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
                SortExpression="id" />
            <asp:BoundField DataField="navn" HeaderText="navn" SortExpression="navn" />
            <asp:BoundField DataField="e-mail" HeaderText="e-mail" SortExpression="e-mail" />
           
        </Fields>
        <HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" />
    </asp:DetailsView>
    <br />
    &nbsp;&nbsp;
    <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/Mail.mdb"
        SelectCommand="SELECT * FROM [Mail]"></asp:AccessDataSource>
Avatar billede dr_chaos Nybegynder
06. december 2005 - 13:51 #6
prøv med:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="2"
        DataKeyNames="id" DataSourceID="AccessDataSource1" ForeColor="#333333" GridLines="None"
        AllowSorting="True" CellSpacing="1" HorizontalAlign="Left">
        <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
        <Columns>
          <asp:TemplateField HeaderText="Send mail" HeaderStyle-BackColor="#D4DBE2" >
<ItemTemplate>
<a href=”ExpressMail.aspx?id=<%# Eval("id") %>”> Send mail </a>
</ItemTemplate>
</asp:TemplateField>
            <asp:CommandField ButtonType="Button" DeleteText="  Slet  " ShowDeleteButton="True" />
            <asp:BoundField DataField="id" HeaderText="ID" InsertVisible="False" ReadOnly="True"
                SortExpression="id" />
            <asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" />
            <asp:BoundField DataField="navn" HeaderText="navn" SortExpression="navn" />
            <asp:BoundField DataField="e-mail" HeaderText="e-mail" SortExpression="e-mail" />
           
        </Columns>
        <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
        <EditRowStyle BackColor="#999999" />
        <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
        <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
        <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
        <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
    </asp:GridView>
    <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/Mail.mdb"
        SelectCommand="SELECT * FROM [Mail]"
        DeleteCommand="DELETE FROM [Mail] WHERE [id] = @id">
        <DeleteParameters>
            <asp:Parameter Type="Int32" Name="id"></asp:Parameter>
        </DeleteParameters>
    </asp:AccessDataSource>
Avatar billede meho_tarevci Nybegynder
06. december 2005 - 13:59 #7
nej,
jeg kan se i statusbar at den viser rigtigt når jeg kører musen over.

den viser altså
... ExpressMail.aspx?id=1
... ExpressMail.aspx?id=2
... ExpressMail.aspx?id=2


men når jeg trykker på linket send mail så viser den kun id 1
Avatar billede dr_chaos Nybegynder
06. december 2005 - 14:03 #8
din SELECT * FROM [Mail] bruger slet ikke id til noget derfor viser den kun den første post.
Det vil altid være id=1.
Så du skal have den til at vælge
SELECT * FROM [Mail] WHER ID = detindkommendeid.
Avatar billede meho_tarevci Nybegynder
06. december 2005 - 14:06 #9
altså

SELECT * FROM [Mail] WHERE [id]=@id
Avatar billede dr_chaos Nybegynder
06. december 2005 - 14:12 #10
prøv at bruge denne datasource:

  <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/Mail.mdb"
        SelectCommand="SELECT * FROM [Mail] WHERE [id] = @id"
        DeleteCommand="DELETE FROM [Mail] WHERE [id] = @id">
        <SelectParameters>
        <asp:QueryStringParameter Type="Int32" QueryStringField="id" Name="id" />
        </SelectParameters>
        <DeleteParameters>
            <asp:Parameter Type="Int32" Name="id"></asp:Parameter>
        </DeleteParameters>
    </asp:AccessDataSource>
Avatar billede meho_tarevci Nybegynder
06. december 2005 - 14:16 #11
yep
nu virker det :)

tak

MEN nu til den anden spørgsmål hvordan sender jeg det valgte oplysninger med e-mail
Avatar billede dr_chaos Nybegynder
06. december 2005 - 14:30 #12
du kan bruge denne kode i codebehind:
try
                {
                    //forsøg at sende email til bruger med password id
                    System.Net.Mail.MailMessage mm = new System.Net.Mail.MailMessage("test@test.dk","test@dinemail.dk” );
                    mm.Subject = "et subject";
                    mm.Body = "en tekst”
                   
System.Net.Mail.SmtpClient sm = new System.Net.Mail.SmtpClient();
                   
                        sm.Send(mm);
                                    }
            catch (Exception ex)
                {
               
                }
Avatar billede dr_chaos Nybegynder
06. december 2005 - 14:31 #13
i din web.config fil skal du tilføje stien på din smtp server:
<system.net>
        <mailSettings>
            <smtp>
                <network host="smtpserver.dk"/>
            </smtp>
        </mailSettings>
    </system.net>
Avatar billede dr_chaos Nybegynder
06. december 2005 - 14:32 #14
koden til at sende e-mailen kan evt afvikles ved at trykke på en knap.
Avatar billede meho_tarevci Nybegynder
06. december 2005 - 15:06 #15
ja, jeg kan godt sende en e-mail fra asp.net

men, hvordan får jeg oplysninger fra database med

jeg går ud fra at oplysninger skal ind i mm.Body=""
men hvordan får jeg "id=1" ind i mm.Body=""
Avatar billede dr_chaos Nybegynder
06. december 2005 - 15:17 #16
du skal tilføje et ButtonField.
<asp:ButtonField CommandName="Send" Text="Send" />

i dit detailsview tilføjer du OnItemCommand="Send_Email"

i code behind filen tilføjer du
protected void Send_Email(object sender, DetailsViewCommandEventArgs e)
    {
}
i den funktion skal du ligge din send mail.

kommer mere om 2 sek...
Avatar billede dr_chaos Nybegynder
06. december 2005 - 15:25 #17
send mail funktionionen kan se ud på denne måde:

protected void Send_Email(object sender, DetailsViewCommandEventArgs e)
    {
        int index = Convert.ToInt32(e.CommandArgument);
        DetailsViewRow row = DetailsView1.Rows[index];
        try
        {
            //forsøg at sende email til bruger med password id
            System.Net.Mail.MailMessage mm = new System.Net.Mail.MailMessage("test@test.dk","test@dinemail.dk” );
            mm.Subject = "et subject" + row.Cells[1].Text;
            mm.Body = "en tekst"+ row.Cells[2].Text;;
            System.Net.Mail.SmtpClient sm = new System.Net.Mail.SmtpClient();
            sm.Send(mm);
        }
        catch (Exception ex)
            {
         
            }
    }
Avatar billede meho_tarevci Nybegynder
06. december 2005 - 15:36 #18
jeg prøver det først imorgen

mange tak for din hjælp,
læg et svar (du fortjener mindst 100 pt. :) )
Avatar billede dr_chaos Nybegynder
06. december 2005 - 15:37 #19
gør jeg :)
Avatar billede dr_chaos Nybegynder
06. december 2005 - 15:41 #20
håber snart at jeg kommer til syne på den top 10 liste :)
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