<asp:TemplateField HeaderText="價格" SortExpression="price1">
<ItemTemplate><asp:Label ID="Label5" runat="server" Text='<%# Eval("price1")%>'></asp:Label></ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
<EditItemTemplate><asp:TextBox ID="tb_price" runat="server" Text='<%# Eval("price1")%>'></asp:TextBox></EditItemTemplate>
</asp:TemplateField>.......
<asp:SqlDataSource ....
UpdateCommand="update_sheet" UpdateCommandType="StoredProcedure">
<UpdateParameters>
<asp:Parameter Name="price1" Type="decimal" />
</UpdateParameters>
这样传不了值啊,要这样处理。
<ItemTemplate><asp:Label ID="Label5" runat="server" Text='<%# Eval("price1")%>'></asp:Label></ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
<EditItemTemplate><asp:TextBox ID="tb_price" runat="server" Text='<%# Eval("price1")%>'></asp:TextBox></EditItemTemplate>
</asp:TemplateField>.......
<asp:SqlDataSource ....
UpdateCommand="update_sheet" UpdateCommandType="StoredProcedure">
<UpdateParameters>
<asp:Parameter Name="price1" Type="decimal" />
</UpdateParameters>
这样传不了值啊,要这样处理。
也可以换种写法 用
<UpdateParameters>
<asp:ControlParameter
Name="price1"
Type="decimal"
ControlID="tb_price"
PropertyName="Text" />
</UpdateParameters>
替换 上面的
<UpdateParameters>
<asp:Parameter Name="price1" Type="decimal" />
</UpdateParameters>但是要更新的 数据类型 是 decimal 的,有可能会 出问题.
UpdateCommand="update_sheet" UpdateCommandType="StoredProcedure">
<UpdateParameters>
<asp:Parameter Name="price1" Type="decimal" />
</UpdateParameters>
上面的 " update_sheet " 是存储过程名吧, 是一个参数吗?
更新是有条件的,
<UpdateParameters>
...
</UpdateParameters>
里只有一个参数,一定不能实现更新, 至少有一个where子句,即
<UpdateParameters>
...
</UpdateParameters> 中至少有两个参数.
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" AllowSorting="True" CellPadding="4" ForeColor="#333333" GridLines="None" BorderStyle="None" Width="100%">
<Columns>
<asp:TemplateField HeaderText="ID" SortExpression="id">
<ItemTemplate><asp:Label ID="Label1" runat="server" Text='<%# Eval("id")%>'></asp:Label></ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
<FooterTemplate><asp:TextBox runat="server" Width="70%"></asp:TextBox></FooterTemplate>
<FooterStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="價格(36*48)" SortExpression="price1">
<ItemTemplate><asp:Label ID="Label5" runat="server" Text='<%# Eval("price1")%>'></asp:Label></ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
<EditItemTemplate><asp:TextBox ID="price1" runat="server" Text='<%# Eval("price1")%>'></asp:TextBox></EditItemTemplate>
<FooterTemplate><asp:TextBox ID="TextBox4" Width="70%" runat="server"></asp:TextBox></FooterTemplate>
<FooterStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate><asp:LinkButton runat="server" CommandName="edit" Text="修改"></asp:LinkButton></ItemTemplate>
<EditItemTemplate><asp:LinkButton ID="ensure1" runat="server" CommandName="update" Text="确定"></asp:LinkButton><asp:LinkButton ID="cancel1" runat="server" CommandName="cancel" Text="取消"></asp:LinkButton></EditItemTemplate>
<FooterTemplate><asp:Button runat="server" Text="确定" /><asp:Button ID="Button2" runat="server" Text="取消" /></FooterTemplate>
</asp:TemplateField></asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT [id], [no], [manu], [copper], [ply], [price1], convert(char(10),addtime,120) addtime, [addman] FROM [sheet]"
UpdateCommand="UPDATE sheet SET price1 = @price1 WHERE (id = @id)">
<UpdateParameters>
<asp:Name="price1" Type="String" />
<asp:Parameter Name="id" Type="Int32" />
</UpdateParameters> </asp:SqlDataSource>这里的price1参数获取不到EditItemTemplate中的值,传过去为null。如果我把DefaultValues设置一个值,那么就会把这个默认值传过去。
看来半天不知道问题所在。
<asp:Parameter Name="price1" Type="String" />格式