2011-10-26 13 views
2

私は基本的なASP.NET Webフォームアプリケーションを持っています。DetailsViewはTextBoxesの空の文字列をnullに変換します

私は、ユーザーにWebフォームを使用してレコードを作成し、たDetailsViewを使用してそれらを更新する可能性を与えます。

Webフォームが正しくDB内* 空strin * gとのTextBoxに空のフィールドを格納します。

詳細ビューは、代わりにnullというフィールドをDBに格納します。またDetailsView_ItemUpdatedイベントで

Iは、データがすでににヌルとして送信されることを意味e.newvalues引数対応するフィールドがヌルでも(例外をスロー)さとe.oldvaluesをチェックするとサーバーは送信時にたDetailsView

は、私は、テンプレートを使用して、私はConvertEmptyStringToNull = "false" をとしてにSqlDataSource内のすべてのアップデートパラメータを設定します。

SqlDataSourceコントロールパラメータ

<asp:Parameter Name="SHELF" Type="String" ConvertEmptyStringToNull="false"/> 

たDetailsView

<asp:DetailsView runat="server" 
        ID="GvProductDetail" AutoGenerateRows="False" DataKeyNames="rowid" 
        DataSourceID="ProductDetailData" 
        OnItemUpdated="gvProductDetail_ItemUpdated"> 

<asp:TemplateField> 
    <HeaderTemplate>Stock Shelf &nbsp;</HeaderTemplate> 
    <ItemTemplate> 
     <%# Eval("Shelf") %> 
    </ItemTemplate> 
    <EditItemTemplate> 
     <asp:TextBox runat="server" ID="txtShelf" Text='<%# Bind("Shelf") %>' ></asp:TextBox> 
    </EditItemTemplate> 
</asp:TemplateField> 

はバインドがnullに空の値を変換することは可能ですか?空の文字列をnullに変換しないようにUpdateParametersルールを設定するだけで十分だと思っていましたが、実用的にはいくつかの驚きがあります。誰も助けるかもしれない?

+0

をあなたは[この](http://stackoverflow.com/questions/2170021/convertemptystringtonull-falseから何かを見つけるかもしれませんそしてまだ変換されていません)関連投稿 –

+0

@エムマヌエルN、あなたの答えに感謝します。私はすでにそのポストで見ていたし、それは答えがありません – CiccioMiami

答えて

1

私はConvertEmptyStringToNull <asp:TextBox>を含むすべての<asp:TemplateField>に= "false" に置くことによって、それを解決:

<asp:TemplateField ConvertEmptyStringToNull="false"> 
    <HeaderTemplate>Stock Shelf &nbsp;</HeaderTemplate> 
    <ItemTemplate>&nbsp;<%# Eval("Shelf") %></ItemTemplate> 
    <EditItemTemplate> 
    <asp:TextBox runat="server" ID="txtShelf" Text='<%# Bind("Shelf") %>' > 
    </asp:TextBox> 
    </EditItemTemplate> 
</asp:TemplateField> 
関連する問題