Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations SkipVought on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Stay in edit mode and move to next row upon update

Status
Not open for further replies.

emmons

Technical User
Oct 9, 2002
114
0
0
Hello, can you show me how to stay in edit mode after the update and have the cursor drop to the leftmost textbox in the next row down for more editing? I would be most grateful and so would the library that I am helping. Thanks a lot.


<%@ Page Language="C#" ClassName="EditNamesPage" AutoEventWireup="False"
EnableSessionState="False" Debug="True"%>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.Odbc" %>

<script runat="server">
private const string ConnStr = "Driver={MySQL ODBC 3.51 Driver};" +
"Server=localhost;Database=mydatabase;uid=myuid;pwd=mypwd;option=3";

protected override void OnInit(EventArgs e)
{
base.OnInit(e);
if(!IsPostBack)
BindDataGrid();
}

private void BindDataGrid()
{
using(OdbcConnection con = new OdbcConnection(ConnStr))
using(OdbcCommand cmd = new OdbcCommand("SELECT id, date_format(dates,'%M %e') as Date, date_format(dates,'%W') as Day, FirstName, LastName FROM Names WHERE dates BETWEEN current_date - interval '16' day AND current_date ", con))
{
con.Open();
DataGrid1.DataSource = cmd.ExecuteReader(
CommandBehavior.CloseConnection |
CommandBehavior.SingleResult);
DataGrid1.DataBind();
}
}

private void DoAddName(object sender, EventArgs e)
{
if(IsAddNameValid())
{
HtmlTable2.Visible = false;

using(OdbcConnection con = new OdbcConnection(ConnStr))
using(OdbcCommand cmd = new OdbcCommand(
"INSERT INTO Names(FirstName, LastName) VALUES (?,?)", con))
{
cmd.Parameters.Add("@FirstName", OdbcType.VarChar, 255).Value =
Textbox3.Text.Trim();
cmd.Parameters.Add("@LastName", OdbcType.VarChar, 255).Value =
Textbox4.Text.Trim();

con.Open();
cmd.ExecuteNonQuery();
BindDataGrid();

}
}
}

private void DoUpdateName(int id, string firstName, string lastName)
{
using(OdbcConnection con = new OdbcConnection(ConnStr))
using(OdbcCommand cmd = new OdbcCommand(
"UPDATE Names SET FirstName = ?, LastName = ? WHERE ID = ?", con))
{
cmd.Parameters.Add("@FirstName", OdbcType.VarChar, 255).Value =
firstName;
cmd.Parameters.Add("@LastName", OdbcType.VarChar, 255).Value =
lastName;
cmd.Parameters.Add("@ID", OdbcType.Int).Value =
id;

con.Open();
cmd.ExecuteNonQuery();
}
}

private void DoDeleteName(int id)
{
using(OdbcConnection con = new OdbcConnection(ConnStr))
using(OdbcCommand cmd = new OdbcCommand(
"DELETE FROM Names WHERE ID = ?", con))
{
cmd.Parameters.Add("@ID", OdbcType.Int).Value = id;

con.Open();
cmd.ExecuteNonQuery();
}
}

private bool IsAddNameValid()
{
HtmlTable2.Visible = true;

Requiredfieldvalidator1.Validate();
Requiredfieldvalidator2.Validate();
Regularexpressionvalidator1.Validate();
Regularexpressionvalidator2.Validate();

return (Requiredfieldvalidator1.IsValid &&
Requiredfieldvalidator2.IsValid &&
Regularexpressionvalidator1.IsValid &&
Regularexpressionvalidator2.IsValid);
}

private void DataGrid1_ItemCommand(object sender, DataGridCommandEventArgs e)
{
switch(e.CommandName)
{
case "Delete":
Literal literal1 = (Literal)e.Item.FindControl("Literal1");
DoDeleteName(Convert.ToInt32(literal1.Text));
BindDataGrid();
break;
default:
break;
}
}

private void DataGrid1_EditCommand(object sender, DataGridCommandEventArgs e)
{
HtmlTable1.Visible = false;
HtmlTable2.Visible = false;

DataGrid1.EditItemIndex = e.Item.ItemIndex;
BindDataGrid();
}

private void DataGrid1_UpdateCommand(object sender, DataGridCommandEventArgs e)
{
Literal literal1 = (Literal)e.Item.FindControl("Literal1");
TextBox textbox1 = (TextBox)e.Item.FindControl("TextBox1");
TextBox textbox2 = (TextBox)e.Item.FindControl("TextBox2");

DoUpdateName(Convert.ToInt32(literal1.Text), textbox1.Text.Trim(),
textbox2.Text.Trim());

HtmlTable1.Visible = true;
DataGrid1.EditItemIndex = -1;
BindDataGrid();
}

private void DataGrid1_CancelCommand(object sender, DataGridCommandEventArgs e)
{
HtmlTable1.Visible = true;
DataGrid1.EditItemIndex = -1;
BindDataGrid();
}
</script>

<html>
<head>
<title>Displaying/Inserting/Editing/Deleting Records from
MySQL 'Names' table</title>
<style>
body, td { font: 8pt Tahoma; }
a { color: blue; }
a:hover { color: red; }

pre { display: none; }

.stdErr { color: red; }
.stdInput { font: 8pt Tahoma; width: 100px; }
.stdButton { font: 8pt Tahoma; }
.stdBogus {width: 0px}
</style>
</head>
<body>

<p align="center"><a href="editnames.aspx">"Names" Table</a></p>

<form runat="server">
<asp:DataGrid ID="DataGrid1" HorizontalAlign="Center" CellPadding="3"
HeaderStyle-BackColor="#F7F7F7" EditItemStyle-BackColor="#F7F7F7"
AutoGenerateColumns="False" DataKeyField="ID"
OnEditCommand="DataGrid1_EditCommand"
OnUpdateCommand="DataGrid1_UpdateCommand"
OnCancelCommand="DataGrid1_CancelCommand"
OnItemCommand="DataGrid1_ItemCommand"
Runat="server">
<Columns>
<asp:TemplateColumn HeaderStyle-Width="30" HeaderText="ID">
<ItemTemplate>
<asp:Literal ID="Literal1" Text='<%#DataBinder.Eval(Container.DataItem, "ID") %>' Runat="server" />
</ItemTemplate>
</asp:TemplateColumn>

<asp:TemplateColumn HeaderStyle-Width="30" HeaderText="Date">
<ItemTemplate>
<asp:Literal ID="Literal2" Text='<%#DataBinder.Eval(Container.DataItem, "date") %>'
Runat="server" />
</ItemTemplate>
</asp:TemplateColumn>

<asp:TemplateColumn HeaderStyle-Width="30" HeaderText="Day">
<ItemTemplate>
<asp:Literal ID="Literal3" Text='<%#DataBinder.Eval(Container.DataItem, "day") %>'
Runat="server" />
</ItemTemplate>
</asp:TemplateColumn>

<asp:TemplateColumn HeaderStyle-Width="100" HeaderText="First Name">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "FirstName") %>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TextBox1" Text='<%#DataBinder.Eval(Container.DataItem, "FirstName") %>'
CssClass="stdInput" Runat="server" />
</EditItemTemplate>
</asp:TemplateColumn>

<asp:TemplateColumn HeaderStyle-Width="100" HeaderText="Last Name">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "LastName") %>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="Textbox2" Text='<%#DataBinder.Eval(Container.DataItem, "LastName") %>'
CssClass="stdInput" Runat="server" />
</EditItemTemplate>
</asp:TemplateColumn>

<asp:EditCommandColumn EditText="Edit"
UpdateText="Update" CancelText="Cancel" />

<asp:ButtonColumn CommandName="Delete" Text="" />
</Columns>
</asp:DataGrid>
<br>
<table id="HtmlTable1" cellspacing="0" cellpadding="3" align="center"
rules="all"
border="0" style="border-collapse:collapse;" runat="server">
<tr style="background-color: white">
<td> </td><td> </td><td> </td>
</tr>
<tr>
<td style="width:100px;">
<asp:TextBox ID="Textbox3" CssClass="stdBogus" Runat="server" />
</td>
<td style="width:100px;">
<asp:TextBox ID="Textbox4" CssClass="stdBogus" Runat="server" />
</td>
<td><a id="HtmlAnchor1" onserverclick="DoAddName" runat="server">
</a></td>
</tr>
</table>

<br>
<table id="HtmlTable2" cellspacing="0" cellpadding="3" align="center"
rules="all"
border="1" style="border-collapse:collapse;" Visible="False"
runat="server">
<tr>
<td style="background-color: #F7F7F7;width: 234px;">Errors</td>
</tr>
<tr>
<td>
<asp:RequiredFieldValidator ID="Requiredfieldvalidator1"
controlToValidate="Textbox3"
Display="None" EnableClientScript="False"
ErrorMessage="*First Name* is a required field"
Runat="server" />
<asp:RequiredFieldValidator ID="Requiredfieldvalidator2"
controlToValidate="Textbox4"
Display="None" EnableClientScript="False"
ErrorMessage="*Last Name* is a required field"
Runat="server" />
<asp:RegularExpressionValidator ID="Regularexpressionvalidator1"
controlToValidate="Textbox3"
ValidationExpression="[\w\s]{1,255}"
Display="None" EnableClientScript="False"
ErrorMessage="*First Name* contains illegal values"
Runat="server" />
<asp:RegularExpressionValidator ID="Regularexpressionvalidator2"
controlToValidate="Textbox4"
ValidationExpression="[\w\s]{1,255}"
Display="None" EnableClientScript="False"
ErrorMessage="*Last Name* contains illegal values"
Runat="server" />
<asp:ValidationSummary ID="ValidationSummary1" DisplayMode="List"
ShowSummary="True" Runat="server" />
</td>
</tr>
</table><br>
</form>

</body>
</html>

 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top