我的页面加载事件看起来像这样....
SqlDataSource1.ConnectionString = Connection.ConnectionStr;
SqlDataSource1.SelectCommand = "select firstname,lastname from customer";
SqlDataSource1.InsertCommand = "CustRec_iu";
SqlDataSource1.InsertCommandType = SqlDataSourceCommandType.StoredProcedure;
SqlDataSource1.InsertParameters.Clear();
SqlDataSource1.InsertParameters.Add(new Parameter("firstname", DbType.String));
SqlDataSource1.InsertParameters.Add(new Parameter("LastName", DbType.String));
SqlDataSource1.InsertParameters.Add(new Parameter("Active",DbType.Int16,"1"));
detailview控件设置如下所示....
<asp:DetailsView ID="dvCustDetails1" runat="server" AutoGenerateRows="False"
DataSourceID="SqlDataSource1" Height="149px" Width="469px"
OnItemInserted=dvCustDetails1_ItemInserted
>
<Fields>
<asp:BoundField DataField="FirstName" HeaderText="First Name"
SortExpression="FirstName" />
<asp:BoundField DataField="LastName" HeaderText="Last Name"
SortExpression="LastName" />
<asp:CommandField ButtonType="Button" ShowInsertButton="True" />
</Fields>
</asp:DetailsView>
在插入功能完成后,我想从客户表中捕获custid,这是一个标识列,一些如何提取它并选择带有该记录的表
从客户中选择*,其中custid = @custid。
然后在插入后控件渲染后,我希望它基于上面的select语句显示新插入的记录。
另外,我希望detailview显示更新按钮,以便我可以更新记录。
我将如何实现这一目标?
我在谷歌搜索甚至打印书籍中找到的文档非常少。
答案 0 :(得分:0)
您希望将sqldatasource的OnSelected事件与SQL调用中的返回参数一起使用。
将其添加到sqldatasource
OnSelected ="sqlds_Selected"
并实现类似:
protected void sqlds_Selected(object sender, SqlDataSourceStatusEventArgs e)
{
//get the command object from the arg and
//then you can get to the parameter value
e.Command.Parameters["@CustomerID"].Value
//then set this to your detailsview key
}