jquery dialog内にデータを配置すると、asp detailsview を使用してデータベースにデータを挿入できないようです。ただし、ページ内に直接配置する限り、正常に機能します。
ダイアログ内に配置すると、情報を入力できますが、送信すると、SQL サーバーは次のように NULL 値の使用について不平を言います。
Cannot insert the value NULL into column 'Alias', table 'GSSNetDB.dbo.GSSNet_EndUsers'; column does not allow nulls
そのため、何らかの理由でポストバック機能がダイアログ内の html フォームから情報を読み取ることができないようです。
これを使用してダイアログを作成します。
<div id="dialogEndUser" title="Create new user">
<asp:DetailsView
ID="DetailsView_EndUsers"
runat="server"
Caption="Enter new user details"
Visible="True"
AutoGenerateInsertButton="True"
AutoGenerateRows="False"
DataKeyNames="Alias"
DataSourceID="EndUserSource"
DefaultMode="Insert">
<Fields>
<asp:BoundField DataField="Alias" HeaderText="Alias" ReadOnly="True" SortExpression="Alias" />
<asp:BoundField DataField="Address" HeaderText="Address*" SortExpression="Address" />
<asp:BoundField DataField="Name" HeaderText="Name*" SortExpression="Name" />
<asp:BoundField DataField="Device_Key" HeaderText="Device Key" SortExpression="Device_Key" />
<asp:BoundField DataField="Phone_Number" HeaderText="Phone_Number" SortExpression="Phone_Number" />
<asp:BoundField DataField="E_mail" HeaderText="E-mail" SortExpression="E_mail" />
<asp:BoundField DataField="Description" HeaderText="Description" SortExpression="Description" />
</Fields>
</asp:DetailsView>
</div>
そして、以下を使用した実際のポップアップ:
$(function () {
$("#dialogEndUser").dialog({
height: 350,
width: 300,
position: "top",
modal: false,
autoOpen: false
});
});
データソースは次のようになります。
<asp:SqlDataSource ID="EndUserSource" runat="server"
ConnectionString="<%$ ConnectionStrings:GSSNetDB %>"
InsertCommand="INSERT INTO [Users] ([Alias], [Address], [Device_Key], [Name], [Phone_Number], [E_mail], [Description]) VALUES (@Alias, @Address, @Device_Key, @Name, @Phone_Number, @E_mail, @Description)">
<InsertParameters>
<asp:Parameter Name="Alias" Type="String" />
<asp:Parameter Name="Address" Type="String" />
<asp:Parameter Name="Device_Key" Type="String" />
<asp:Parameter Name="Name" Type="String" />
<asp:Parameter Name="Phone_Number" Type="String" />
<asp:Parameter Name="E_mail" Type="String" />
<asp:Parameter Name="Description" Type="String" />
</InsertParameters>
</asp:SqlDataSource>
誰かが私を助けてくれたり、問題へのアプローチ方法についての指針を与えてくれたりすると、とてもありがたいです。誰かが推奨事項を持っている場合は、別のダイアログ システムを使用してみてください。
御時間ありがとうございます!