行を追加すると、これはかなり簡単です。
新しく追加された行の編集インデックスを設定する必要があります。
gv.EditIndex = gv.Rows.Count-1;
OP用に編集
これは汚いコードです、私はあなたに私が何を意味するかを示して、それをかなり速く泡立てました。ページにGridView1というグリッドビューがあるとします。
namespace HelpSO3
{
public partial class _Default : System.Web.UI.Page
{
List<string> t = new List<string>();
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string s = "hi";
t.Add(s);
GridView1.DataSource = t;
GridView1.DataBind();
Session["MyList"] = t;
}
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
t = (List<string>)Session["MyList"];
t.Add("Another String");
GridView1.DataSource = t;
GridView1.DataBind();
GridView1.EditIndex = GridView1.Rows.Count - 1;
GridView1.DataBind();
Session["MyList"] = t;
}
}
}
したがって、Button1_Clickイベントは、値が「Another String」の新しい行を追加し、グリッドビューをバインドし、EditIndex
値を最新の行に設定して再バインドします。その単純な。
あなたの場合、あなたのコードは次のようになります:
protected void gv_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Insert") //- this is needed to explain that the INSERT command will only work when INSERT is clicked
{
dbcon.Execute("INSERT INTO PROJ_ASP (TRANS_CD) VALUES('')", "ProjectASPConnectionString");
gv.DataBind();
gv.EditIndex = gv.Rows.Count-1;
gv.DataBind();
}
}