如果我将GridView(通过DataSourceID属性)绑定到SqlDataSource并设置SelectCommand和UpdateCommand属性,那么一切都很完美.
但我注意到,如果我,无论出于何种原因,还在Page_Load()中手动调用DataBind(),那么SqlDataSource不执行任何更新,即使当GridView的Update按钮是SqlDataSource.Updating和SqlDataSource.Updated事件时也会触发点击.
有人可以解释为什么不发生更新?
昨晚我在Visual Studio中为我的学校项目做了一个GridView和SqlDataSource.Usualy我使用PHP进行Web开发,但这种组合非常强大,所以我想知道是否存在一个PHP类实现与ASP.NET中的SqlDataSource + GridView相同的想法?
我正在尝试对单个数据列执行单个搜索asp:GridView,但是我希望每个列上方有多个过滤器(搜索)框,以便可以在自己的透视列中进行搜索.理论上明确解决这个问题的方法就是拥有多个FilterExpressions.我正在使用VB而且非常新,很容易被VB误解,请使用:
PS.当只有一个过滤器(搜索)框时,我已经让它工作没问题,这当前没有做任何事情
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="xxx"
ProviderName="xxxx"
SelectCommand="SELECT [ddiID], [volusionID], [Customer], [email], [Total], [SumOfTotal] FROM [BBnewsalesQry] ORDER BY [Customer]"
FilterExpression="customer like '%{0}%' OR ddiID like '%{0}%'">
<FilterParameters>
<asp:ControlParameter Name="ddiID" ControlID="ddiIDSearch" PropertyName="Text" />
<asp:ControlParameter Name="customer" ControlID="txtSearch" PropertyName="Text" />
</FilterParameters>
</asp:SqlDataSource>
<div>
<b>DDI Search:</b> <asp:TextBox ID="ddiIDSearch" runat="server" />
<b>Customer Search:</b> <asp:TextBox ID="txtSearch" runat="server" />
<asp:ImageButton ID="btnSearch" ImageUrl="http:xxx" runat="server" />
<asp:ImageButton ID="btnClear" ImageUrl="http:xxx" runat="server" />
</div>
Run Code Online (Sandbox Code Playgroud)
然后在GridView内部:
<asp:TemplateField HeaderText="ddiID" SortExpression="ddiID">
<ItemStyle HorizontalAlign="Left" />
<ItemTemplate>
<asp:Label ID="lblddiid" Text='<%#HighlightText(Eval("ddiid")) %>'
CssClass="TextField" …Run Code Online (Sandbox Code Playgroud) 我需要将这个且只有一个AJAX控件的功能移植到MVC,但鉴于MVC控件的选择很差,我认为我需要将这个传统控件带入MVC世界......
我宁愿不用ASP.NET控件来修改我的MVC项目,也欢迎你知道的json/MVC替代品.(如果你知道的话,发布它们)
我在ASP.NET MVC中需要的示例UI

回到移植
虽然是不幸的,我留下来移植这种控制,MVC,这似乎是一个被广泛接受的做法,因为Telerik的有详细的说明就如何做到这一点.
这让我问:
MVC网站使用ASP.NET控件有多常见?
我再次提到我不想这样做,所以我欢迎MVC特定的替代方案.话虽这么说,我将继续尝试将该控件与我现有的网站合并.</End Disclaimer>
如果你单击这个超链接,并查看底部的源代码,你能告诉我应该在MVC中放置以下内容吗?
代码背后(我的第一直觉是使用Controller,但另一个SO问题表明我应该创建一个创建一个ViewName.aspx.cs文件)
如何将SQLDataSource移植到新的"模型"思维方式.我知道它们本质上是不同的,但我不知道如何以消耗信息的方式向ASP.NET控件提供数据.
我如何处理AJAX组件?此控件具有使用回调的AJAX组件.是的,这很难看,但似乎我必须这样做.
显然,此模型将数据保存在会话或视图状态中.我不知道这是否适用于MVC.非常感谢指导,备用控制或救生圈.
我已经完成了研究,并在这里 和Telerik的指示中描述了如何开始放置一个简单的菜单,但是我需要一些辅助来处理像这样的更复杂的控件.
注意:对于遇到此问题的所有评论,请记住我只想要这一个 ASP.NET控件功能; 我在MVC中找不到类似的控件.
asp.net-mvc telerik sqldatasource asp.net-mvc-3 asp.net-mvc-2
<div style="width:100%; height:200px; overflow:scroll; border-color:White;">
<asp:GridView ID="UsersGridView" runat="server"
CssClass="label" ShowHeaderWhenEmpty="True" Width="100%"
AllowSorting="True" HeaderStyle-BackColor="LightGray" CellPadding="4"
ForeColor="#333333" GridLines="None" DataSourceID="UsersDataSource" >
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
<asp:BoundField HeaderText="Fleet Description" ReadOnly="True"
HeaderStyle-Wrap="false" HtmlEncode="True" >
<HeaderStyle Wrap="False"></HeaderStyle>
</asp:BoundField>
<asp:BoundField DataField="Fleet Code" HeaderText="Fleet Code" ReadOnly="True"
HeaderStyle-Wrap="false" >
<HeaderStyle Wrap="False"></HeaderStyle>
</asp:BoundField>
<asp:BoundField DataField="First Name" HeaderText="First Name" ReadOnly="True"
HeaderStyle-Wrap="false" >
<HeaderStyle Wrap="False"></HeaderStyle>
</asp:BoundField>
<asp:BoundField DataField="Last Name" HeaderText="Last Name" ReadOnly="True"
HeaderStyle-Wrap="false" >
<HeaderStyle Wrap="False"></HeaderStyle>
</asp:BoundField>
<asp:BoundField DataField="Username" HeaderText="User Name" ReadOnly="True"
HeaderStyle-Wrap="false" >
<HeaderStyle Wrap="False"></HeaderStyle>
</asp:BoundField>
<asp:BoundField DataField="Email" HeaderText="Email" ReadOnly="True" …Run Code Online (Sandbox Code Playgroud) 我正在构建一个C#ASP.NET页面,我想在数据库中调用存储过程.
我已经设置了一个SqlDataSource指向存储过程的东西.参数直接从Web控件获取(TextBox)
我有一个按钮,当用户点击它时它应该运行存储过程,所以我打算添加如下代码:
mySqlDataSource.run()
Run Code Online (Sandbox Code Playgroud)
要么
mySqlDataSource.exec()
Run Code Online (Sandbox Code Playgroud)
要么
mySqlDataSource.storedProcedure()
Run Code Online (Sandbox Code Playgroud)
但当然这些方法都不存在.
如何初始化存储过程?如何获取存储过程返回的值?
谢谢!
我有我的SqlDataSource控件.它基本上有UpdateCommand和SelectCommand.我的gridview绑定到这个sqldatasource控件.我的SelectCommand是:
Select Username, Status from Users Order by LastLoginTime desc
Run Code Online (Sandbox Code Playgroud)
我的桌子是这样的:
ABC IN PROGESS somedate
DEF COMPLETE somedate
PQR PENDING somedate
JLM COMPLETE somedate
LKM IN PROGESS somedate
Run Code Online (Sandbox Code Playgroud)
当前查询结果按lastlogintime排序(即somedate).但我希望我的结果按第二列排序(比如这个列名是Status).我希望对记录进行排序,以便首先显示所有用户的整体状态为IN PROGRESS,然后显示PENDING然后完成.正如你所说,这不是一个简单的order by子句.
如何使用我的SqlDataSource控件以这种方式排序?
为什么我在后面的代码中使用以下指令:
SqlDataSource1.SelectParameters["page"].DefaultValue = "0";
Run Code Online (Sandbox Code Playgroud)
我得到'System.NullReferenceException:对象引用未设置为对象的实例.
"?
我们有一个自动更新的radgrid SqlDataSource.UpdateCommand.因此,当我们编辑某些列并单击"更新"时,表格会UpdateCommand在标记中正确更新.
它看起来像这样:
<telerik:RadGrid ID="RadGrid" DataSourceID="SqlDataSource1" runat="server" AllowAutomaticUpdates="true" >
<MasterTableView AutoGenerateColumns="False" DataKeyNames="City" CommandItemDisplay="Top" AllowAutomaticUpdates="true">
<Columns>
<telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn">
</telerik:GridEditCommandColumn>
<telerik:GridBoundColumn DataField="City" HeaderText="City" ReadOnly="True" SortExpression="City"
UniqueName="City" >
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Prefix" HeaderText="Prefix" UniqueName="Prefix">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="sector" HeaderText="sector" UniqueName="sector">
</telerik:GridBoundColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>
<asp:SqlDataSource ID="SqlDataSource1" ConnectionString="<%$ ConnectionStrings:RF-PRConnectionString %>"
SelectCommand="SELECT STATEMENT" runat="server"
UpdateCommand= "UPDATE STATEMENT">
<UpdateParameters>
<asp:Parameter Name="Name" Type="String" />
<asp:Parameter Name="sector" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>
Run Code Online (Sandbox Code Playgroud)
但是,假设更新在表中生成异常(即尝试使用varchar更新Int,违反某些键等).有什么方法可以添加Try...Catch到SqlDataSource.UpdateCommand?我不知道怎么做,因为更新后面没有代码,一切都通过完成SqlDataSource.
asp.net ×8
c# ×4
gridview ×4
.net ×1
asp.net-mvc ×1
data-binding ×1
datagridview ×1
php ×1
sql ×1
sql-server ×1
telerik ×1