0
詳細ビューの[挿入]ボタンをクリックすると、値(フィールドIDCommerciale)を設定します。 OnItemInsertingを使用して値を変更しようとしましたが、何も起こりません。 これは、ASPXのコードです:詳細ビューのデータ値をプログラムで設定します
<asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="125px" DefaultMode="Insert"
AutoGenerateRows="False" DataKeyNames="IDPianificazione"
DataSourceID="EntityDataSourceDetailsView" OnItemInserting="insertingmodeevent"
>
<Fields>
<asp:TemplateField HeaderText="IDCommerciale"
SortExpression="IDCommerciale">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("Commerciali.Nome") %>'></asp:Label>
</ItemTemplate>
<InsertItemTemplate>
<asp:DropDownList ID="ddlIDCommerciale" runat="server" SelectedValue='<%# Bind("IDCommerciale") %>'
DataSourceID="EntityDataSource1" DataTextField="Nome"
DataValueField='IDCommerciale'>
</asp:DropDownList>
</InsertItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="IDCLiente" SortExpression="IDCLiente">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("IDCLiente") %>'></asp:Label>
</ItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("IDCLiente") %>'></asp:TextBox>
</InsertItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="IDCategoria" SortExpression="IDCategoria">
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Bind("IDCategoria") %>'></asp:Label>
</ItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("IDCategoria") %>'></asp:TextBox>
</InsertItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Oggetto" HeaderText="Oggetto"
SortExpression="Oggetto" />
<asp:BoundField DataField="datainizio" HeaderText="datainizio"
SortExpression="datainizio" />
<asp:BoundField DataField="DataPresuntaFine" HeaderText="DataPresuntaFine"
SortExpression="DataPresuntaFine" />
<asp:BoundField DataField="DataCompletamento" HeaderText="DataCompletamento"
SortExpression="DataCompletamento" />
<asp:CommandField
ShowInsertButton="True" />
</Fields>
</asp:DetailsView>
<asp:EntityDataSource ID="EntityDataSourceDetailsView" runat="server"
ConnectionString="name=SalesPortalEntities" Include="Categorie,Commerciali,Clienti"
DefaultContainerName="SalesPortalEntities" EnableDelete="True"
EnableFlattening="False" EnableInsert="True" EnableUpdate="True"
EntitySetName="PianificazioneIncontri">
</asp:EntityDataSource>
<asp:EntityDataSource ID="EntityDataSource1" runat="server"
ConnectionString="name=SalesPortalEntities"
DefaultContainerName="SalesPortalEntities" EnableFlattening="False"
EntitySetName="Commerciali">
</asp:EntityDataSource>
が、これは背後にあるコードです:
protected void insertingmodeevent(object sender, EventArgs e)
{
string gruppoAdmin = System.Web.Security.FormsAuthentication.Decrypt(Request.Cookies[1].Value).UserData;
if (gruppoAdmin.Contains("SPGAdmins"))
{
try
{
DropDownList dd = new DropDownList();
dd = DetailsView1.FindControl("ddlIDCommerciale") as DropDownList;
dd.SelectedIndex = 1;
dd.SelectedValue = "1";
}
catch (Exception)
{
new Exception();
}
}
else
{
// other code
}
}
コードがexecude定期的にですが、私は、データベース上のデータをチェックすると、アイテムのdoes'entコードの背後に強制的に値を取る。イベントOnDataBindingも試しましたが、結果は同じです。 このフィールドの値を強制するにはどうすればよいですか?