I have a datagrid with update/cancel on one side, a button on the
other which, when clicked, will take the user to a page that allows
them to e-mail that particular observation's data. My problem, is
that I have some columns that are sortable. To make everything work,
I can wrap the e-mail code in a 'if not.postback' statement (wrong I
know--testing here), but then, my sorts/updates/cancels don't work
because an error is thrown from the page I redirect to . . . even
though I haven't pressed the e-mail button. For example, for the code
I post below, if I sort a row, an error is thrown from code within the
sendmail.aspx page. I don't understand this and can't step through it
(using Dreamweaver).
I'm sure I'm doing something really silly. Any help is appreciated.
<%@ Page Language="VB" ContentType="te xt/html"
ResponseEncodin g="iso-8859-1" %>
<%@ Import Namespace="Syst em.Data" %>
<%@ Import Namespace="Syst em.Data.SQLClie nt" %>
<%@ Import Namespace="Syst em.Web.Mail" %>
<script language="VB" runat="server">
Sub MyDataGrid_Edit Command(s As Object, e As DataGridCommand EventArgs
)
MyDataGrid.Edit ItemIndex = e.Item.ItemInde x
BindData("zyp9. Outbreak.DtRpt DESC")
End Sub
Sub MyDataGrid_Canc el(Source As Object, E As DataGridCommand EventArgs)
MyDataGrid.Edit ItemIndex = -1
BindData("zyp9. Outbreak.DtRpt DESC")
End Sub
Sub Page_Load(Sourc e as Object, E as EventArgs)
if not Page.IsPostBack then
BindData("zyp9. Outbreak.DtRpt DESC")
end if
End Sub
Sub Page_Change(sen der As Object, e As DataGridPageCha ngedEventArgs)
MyDataGrid.Curr entPageIndex = e.NewPageIndex
BindData("zyp9. Outbreak.DtRpt DESC")
End Sub
Sub BindData( strSortField as String )
Dim strConn as string =
"server=DEV1;ui d=user;pwd=xxx; database=OUTBRE AK"
Dim sql as string = "SELECT zyp9.Outbreak.R owId,
zyp9.Outbreak.T itle, zyp9.Outbreak.S tate, zyp9.Outbreak.S ts_Af, " & _
"zyp9.Outbreak. DtRpt, zyp9.Outbreak.D isease,
zyp9.Outbreak.T ype, zyp9.Outbreak.C ases, " & _
"zyp9.Outbreak. Alias, zyp9.Email.lnam e + ', ' +
zyp9.Email.fnam e as Name " & _
"FROM zyp9.Outbreak, zyp9.email " & _
"WHERE (zyp9.Outbreak. alias=zyp9.Emai l.alias) " & _
"ORDER BY " & strSortField
Dim conn as New SQLConnection(s trConn)
Dim objDR as SQLDataReader
Dim Cmd as New SQLCommand(sql, conn)
conn.Open()
objDR=Cmd.Execu teReader(system .data.CommandBe havior.CloseCon nection)
MyDataGrid.Data Source = objDR
MyDataGrid.Data Bind()
conn.close
End Sub
Sub dgSort( s As object, e as DataGridSortCom mandEventArgs)
BindData (e.SortExpressi on)
End Sub
Sub MyDataGrid_Upda teCommand(s As Object, e As
DataGridCommand EventArgs )
Dim conn As SqlConnection
Dim Cmd As SqlCommand
Dim strConn as string =
"server=DEV1;ui d=user;pwd=xxx; database=OUTBRE AK"
Dim txtTitle As textbox = E.Item.cells(2) .Controls(0)
Dim txtState As textbox = E.Item.cells(3) .Controls(0)
Dim txtSts_Af As textbox = E.Item.cells(4) .Controls(0)
Dim txtDtRpt As textbox = E.Item.cells(5) .Controls(0)
Dim txtDisease As textbox = E.Item.cells(6) .Controls(0)
Dim txtType As textbox = E.Item.cells(7) .Controls(0)
Dim txtCases As textbox = E.Item.cells(8) .Controls(0)
Dim strUpdateStmt As String
strUpdateStmt ="UPDATE zyp9.Outbreak SET Title =@Title, State
=@State, Sts_Af =@Sts_Af, " & _
"DtRpt =@DtRpt, Disease=@Diseas e, Type=@Type,
Cases=@Cases " & _
"WHERE RowId = @RowId"
conn = New SqlConnection(s trConn)
Cmd = New SqlCommand(strU pdateStmt, conn)
Cmd.Parameters. Add(New SQLParameter("@ Title", txtTitle.text))
Cmd.Parameters. Add(New SQLParameter("@ State", txtState.text))
Cmd.Parameters. Add(New SQLParameter("@ Sts_Af", txtSts_Af.text) )
Cmd.Parameters. Add(New SQLParameter("@ DtRpt", txtDtRpt.text))
Cmd.Parameters. Add(New SQLParameter("@ Disease", txtDisease.text ))
Cmd.Parameters. Add(New SQLParameter("@ Type", txtType.text))
Cmd.Parameters. Add(New SQLParameter("@ Cases", txtCases.text))
Cmd.Parameters. Add(New SQLParameter("@ RowID", e.Item.Cells(1) .Text))
conn.Open()
Cmd.ExecuteNonQ uery()
MyDataGrid.Edit ItemIndex = -1
conn.close
BindData("zyp9. Outbreak.RptDt DESC")
End Sub
Sub Email_Report(s As Object, e As DataGridCommand EventArgs)
Dim strRowID As string = E.Item.cells(1) .text
Dim strAlias as string = E.Item.cells(10 ).text
'If Not Page.IsPostBack Then
e.Item.Backcolo r = system.drawing. color.lightgree n
e.item.font.bol d = true
Response.Redire ct("SendMail.as px?RowId=" &
System.Web.Http Utility.UrlEnco de(strRowId) _
& "&Alias=" &
System.Web.Http Utility.UrlEnco de(strAlias))
'End If
End Sub
</script>
<html>
<head>
<title>Entry Edit</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
</head>
<body>
<table width="263" border="1" align="center" id="nav_bar">
<tr>
<td height="22" colspan="2">
<div align="center">
<font color="#333366" size="3" face="Geneva, Arial, Helvetica,
sans-serif">
<strong>Outbrea k Entry Report</strong>
</font>
</div>
</td>
</tr>
<tr>
<td width="122">
<div align="center">
<font color="#333366" size="3" face="Geneva, Arial, Helvetica,
sans-serif">
<strong>
<a href="http://acid-xdv-webdv1/hepatitis/default.htm">Ho me</a>
</strong>
</font>
</div>
</td>
<td width="125">
<div align="center"> <font color="#333366" size="3" face="Geneva,
Arial, Helvetica, sans-serif">
<strong><a href="http://acid-xdv-webdv1/hepatitis/default.htm">Xy z</a></strong>
</font> </div>
</td>
</tr>
</table>
<hr>
<form name="form1" method="post" runat="server">
<asp:Datagrid runat="server"
Id="MyDataGrid "
GridLines="Both "
cellpadding="2"
cellspacing="2"
Headerstyle-BackColor="#808 0C0"
Headerstyle-Font-Name="Arial"
Headerstyle-Font-Size="12"
Headerstyle-Font-Bold="True"
AutogenerateCol umns="False"
OnEditcommand=" MyDataGrid_Edit Command"
OnCancelcommand ="MyDataGrid_Ca ncel"
OnUpdateCommand ="MyDataGrid_Up dateCommand"
OnItemCommand=" Email_Report"
OnPageIndexChan ged="Page_Chang e"
AllowSorting = "True"
OnSortCommand ="dgSort"
DataKeyField="R owId">
<ItemStyle BackColor="#F2F 2F2" Font-Name="Verdana, Arial,
Helvetica, sans-serif" Font-Size="smaller" />
<AlternatingIte mStyle BackColor="#E5E 5E5"
Font-Name="Verdana, Arial, Helvetica,
sans-serif"
Font-Size="smaller" />
<Columns>
<asp:EditComman dColumn
ButtonType="Lin kButton"
UpdateText="Upd ate"
CancelText="Can cel"
EditText="<IMG SRC='pics/Edit.gif' Border=0 Width=12 Height=12>"
ItemStyle-HorizontalAlign ="Center"
HeaderText="Edi t">
</asp:EditCommand Column>
<asp:BoundColum n
DataField="RowI d"
HeaderText="ID"
ReadOnly="True"
SortExpression= "zyp9.Outbreak. RowId">
</asp:BoundColumn >
<asp:BoundColum n
DataField="Titl e"
HeaderText="Tit le">
</asp:BoundColumn >
<asp:BoundColum n
DataField="Stat e"
HeaderText="Sta te">
</asp:BoundColumn >
<asp:BoundColum n
DataField="Sts_ Af"
HeaderText="Oth er States">
</asp:BoundColumn >
<asp:BoundColum n
DataField="DtRp t"
HeaderText="Dat e Rptd"
DataFormatStrin g="{0:d}"
SortExpression= "zyp9.Outbreak. DtRpt DESC">
</asp:BoundColumn >
<asp:BoundColum n
DataField="Dise ase"
HeaderText="Dis ease">
</asp:BoundColumn >
<asp:BoundColum n
DataField="Type "
HeaderText="Typ e">
</asp:BoundColumn >
<asp:BoundColum n
DataField="Case s"
HeaderText="Cas es">
</asp:BoundColumn >
<asp:BoundColum n
DataField="Name "
HeaderText="Rec ipient"
ReadOnly="True"
SortExpression= "zyp9.Email.LNa me">
</asp:BoundColumn >
<asp:BoundColum n
DataField="Alia s"
HeaderText="Ali as"
ReadOnly="True" >
</asp:BoundColumn >
<asp:ButtonColu mn
Text="<IMG SRC='pics/email05a.gif' Border=0 Width=20
Height=20>"
ItemStyle-HorizontalAlign ="Center"
HeaderText="E-Mail"
CommandName="Em ail">
</asp:ButtonColum n>
</Columns>
</asp:DataGrid>
</form>
</body>
</html>