此ASP.net DataBinding程序有什么不好?请帮助

问题描述 投票:0回答:1

我习惯于在客户端写数据,然后使用Javascript验证并将表单提交到服务器端的新页面,该页面更新了数据库,然后再次运行。

我正在考虑在ASP.net上进行编程,在客户端执行此操作不是一个好习惯,因为在服务器端,安全性更好。

我试图使用sqlDataSources和DataBinding失败地做到这一点。

在我的页面上,我只有两个输入框。这些框是空的。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Prueba.aspx.cs"
    Inherits="MaximaBR.com.Prueba" %>

<!DOCTYPE html>    
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:SqlDataSource id="SqlDataSource1" runat="server"
                DataSourceMode="DataReader"
                ConnectionString="<%$ ConnectionStrings:Data %>"
                SelectCommand="SELECT [idpropiedad],[propietario] 
                               FROM [dbo].[Propiedades] 
                               WHERE [idpropiedad] = 525293">
                <SelectParameters>
                    <asp:ControlParameter name="idpropiedad" 
                        controlid="idpropiedadBox" propertyname="Text" />
                    <asp:ControlParameter name="propietario" 
                        controlid="propietarioBox" propertyname="Text" />
                </SelectParameters>
            </asp:SqlDataSource>
            <asp:TextBox id="idpropiedadBox" runat="server"
                DataSourceID="SqlDataSource1"></asp:TextBox>
            <asp:TextBox id="propietarioBox" runat="server" 
                DataSourceID="SqlDataSource1"></asp:TextBox>
        </div>
    </form>
</body>
</html>

我已经阅读了很多关于此的文章,但是我的应用程序是在WebForms上,而不是在mvc上,所以我想以此方式进行。

此外,我的响应式html字段很多,所以我不必使用gridview。

在我看来,我丢失了数据视图,这就是我所需要的。我已经习惯了在Visual Basic 6.0上使用databind,但是在这里似乎有些棘手,无法使用。

也许我的问题之一是我不了解页面加载和其他页面加载的WebForm Cycles时间?

asp.net sqldatasource
1个回答
0
投票
  1. 您需要数据绑定服务器控件以显示/编辑/更新数据。对于单行,asp:FormView可以。
  2. 您需要将子控件绑定到基础字段。 Eval用于单向装订,Bind用于双向装订。

代码可能看起来像这样。

<asp:FormView runat="server" DefaultMode="Edit" DataSourceID="SqlDataSource1">
    <EditItemTemplate>
        <asp:TextBox ID="idpropiedadBox" runat="server" Text='<%#Bind("idpropiedad") %>'></asp:TextBox>
        <asp:TextBox ID="propietarioBox" runat="server" Text='<%#Bind("propietario") %>'></asp:TextBox>
        <asp:Button ID="btnUpdate" runat="server" CommandName="Update" Text="Update" />
    </EditItemTemplate>
</asp:FormView>
<asp:SqlDataSource
    ID="SqlDataSource1"
    runat="server"
    DataSourceMode="DataSet"
    ConnectionString="<%$ ConnectionStrings:Data%>"
    SelectCommand="SELECT [idpropiedad],[propietario] FROM  [dbo].[Propiedades] WHERE [idpropiedad] = 525293 "
    UpdateCommand="update [dbo].[Propiedades] set [idpropiedad]=@idpropiedad,[propietario]=@propietario WHERE [idpropiedad] = 525293">
    <SelectParameters>
        <%--no need as select command doesn't have parameters --%>
    </SelectParameters>
    <UpdateParameters>
        <asp:Parameter Name="idpropiedad" Type="Int32" />
        <asp:Parameter Name="propietario" Type="String" Size="1024" />
    </UpdateParameters>
</asp:SqlDataSource>
© www.soinside.com 2019 - 2024. All rights reserved.