Viewing source for recipe1315vb.aspx
<%@ Page Language="VB" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.SqlClient" %>
<script runat="server">
Protected Sub Page_Load(Sender As Object, E As EventArgs)
If Not IsPostBack Then
MasterDataGrid.SelectedIndex = 0
BindMasterDataGrid()
BindDetailDataGrid()
End If
End Sub
Protected Sub MasterDataGrid_SelectedIndexChanged(Sender As Object, E As EventArgs)
BindDetailDataGrid()
End Sub
Protected Sub MasterDataGrid_PageIndexChanged(Sender As Object, E As DataGridPageChangedEventArgs)
If MasterDataGrid.SelectedIndex <> -1 Then
MasterDataGrid.SelectedIndex = -1
BindDetailDataGrid()
End If
MasterDataGrid.CurrentPageIndex = e.NewPageIndex
BindMasterDataGrid()
End Sub
Protected Sub BindMasterDataGrid()
Dim ConnectionString As String = "server=Localhost;database=pubs;trusted_connection=true"
Dim CommandText As String = "select au_lname as [Last Name], au_fname as [First Name], Address, City, State from Authors order by [Last Name]"
Dim objConnection As New SqlConnection(ConnectionString)
Dim objCommand As New SqlDataAdapter(CommandText, objConnection)
Dim objDataSet As New DataSet()
Try
objCommand.Fill(objDataSet)
MasterDataGrid.DataSource = objDataSet.Tables(0).DefaultView
MasterDataGrid.DataBind()
Catch SqlEx As SqlException
ErrorLabel.Text = SqlEx.Message
Catch Ex As Exception
ErrorLabel.Text = Ex.Message
End Try
End Sub
Protected Sub BindDetailDataGrid()
If MasterDataGrid.SelectedIndex <> -1 Then
Dim ConnectionString As String = "server=Localhost;database=pubs;trusted_connection=true"
Dim FilterValue As String
Try
FilterValue = CStr(MasterDataGrid.DataKeys(MasterDataGrid.SelectedIndex)).Replace("'", "''")
Catch
FilterValue = ""
End Try
Dim CommandText As String = "select title as Title, price as Price, ytd_sales as [YTD Sales] from titleview where au_lname = '" & FilterValue & "'"
Try
Dim objConnection As New SqlConnection(ConnectionString)
Dim objCommand As New SqlCommand(CommandText, objConnection)
objConnection.Open()
DetailsDataGrid.DataSource = objCommand.ExecuteReader(CommandBehavior.CloseConnection)
DetailsDataGrid.DataBind()
objConnection.Close()
Catch SqlEx As SqlException
ErrorLabel.Text = SqlEx.Message
Catch Ex As Exception
ErrorLabel.Text = Ex.Message
End Try
End If
End Sub
</script>
<html>
<head>
</head>
<body>
<form runat="server">
<p>
<asp:datagrid id="MasterDataGrid" runat="server" OnPageIndexChanged="MasterDataGrid_PageIndexChanged" PageSize="6" AllowPaging="True" OnSelectedIndexChanged="MasterDataGrid_SelectedIndexChanged" DataKeyField="Last Name" Width="100%">
<Columns>
<asp:ButtonColumn Text="Show details" CommandName="Select" />
</Columns>
</asp:datagrid>
<br />
<asp:datagrid id="DetailsDataGrid" runat="server" EnableViewState="False" Width="100%" />
</p>
<p>
<asp:Label id="ErrorLabel" runat="server" />
</p>
</form>
</body>
</html>