CommandName问题

yanghu612 2012-11-08 05:14:44
<form id="form1" runat="server">
<div>
>
<asp:ListView
ID="lstMovieCategories"
DataSourceId="srcMovieCategory"
DataKeyNames="Id"
runat="server">
<LayoutTemplate>
<div class="categoryContainer">
<asp:PlaceHolder
id="itemPlaceholder"
Runat="server" />
</div>
</LayoutTemplate>
<ItemTemplate>
<div>
<asp:LinkButton
id="lnkSelect"
Text='<%# Eval("Name") %>'
CommandName="Select"
Runat="server" />
</div>
</ItemTemplate>


<SelectedItemTemplate>

<div id="selected">
<%# Eval("Name") %>
<i>yang</i>
</div>
</SelectedItemTemplate>
</asp:ListView>

<br style="clear:both" /><br />

<asp:ListView
ID="lstMovies"
DataSourceId="srcMovies"
runat="server">
<LayoutTemplate>
<ol>
<asp:PlaceHolder
id="itemPlaceholder"
runat="server" />
</ol>
</LayoutTemplate>
<ItemTemplate>
<li><%# Eval("Title") %></li>
</ItemTemplate>
</asp:ListView>

<asp:SqlDataSource
id="srcMovieCategory"
SelectCommand="SELECT Id, Name FROM MovieCategory"
ConnectionString='<%$ ConnectionStrings:con %>'
Runat="server" />

<asp:SqlDataSource
id="srcMovies"
SelectCommand="SELECT Title FROM Movie
WHERE CategoryId=@CategoryId"
ConnectionString='<%$ ConnectionStrings:con %>'
Runat="server">
<SelectParameters>
<asp:ControlParameter

Name="CategoryId"
ControlID="lstMovieCategories" />
</SelectParameters>
</asp:SqlDataSource>
</div>
</form>


这个CommandName有什么作用
还有最后那个SelectParameters怎么没有设置PropertyName属性
CategoryId这个参数的值又从哪里来
...全文
370 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzyoucan 2013-12-09
  • 打赏
  • 举报
回复
haojuntu 2012-11-08
  • 打赏
  • 举报
回复
引用 楼主 yanghu612 的回复:
<form id="form1" runat="server"> <div> > <asp:ListView ID="lstMovieCategories" DataSourceId="srcMovieCategory" DataKeyNames="Id" ……
你做添加、修改、删除时,可以传递名称,方便后台判断的
chen_ya_ping 2012-11-08
  • 打赏
  • 举报
回复
这个如果是你自己写事件的话,还是需要这个的
Hauk 2012-11-08
  • 打赏
  • 举报
回复
DataKeyNames指示该数据源中的主键字段, 在rowupdating,RowEditing事件中可以通过 this.lstMovieCategories.DataKeys[e.NewEditIndex].Value获得该行的主键值 在其他事件中也可以this.lstMovieCategories.DataKeys[索引].Value获得 在查询语句中的@CategoryId这个参数,就是通过SelectParameters设置中来的。
yanghu612 2012-11-08
  • 打赏
  • 举报
回复
还有那个DataKeyNames="Id" 有什么意义
yanghu612 2012-11-08
  • 打赏
  • 举报
回复
引用 1 楼 haukwong 的回复:
CommandName用于触发Command事件后判断该做什么操作。 如果设置update,insert,select的话,可以触发默认的对应操作。 如果是自定义按钮,或其他CommandName的话。可以在Command事件中判断e.CommandName来做不同的操作。 SelectParameters的设置: XML/HTML code12345 ……
在查询语句中的@CategoryId这个参数的值又从哪里传递来的
yanghu612 2012-11-08
  • 打赏
  • 举报
回复
不加好像也可以吧。
笨笨熊三号 2012-11-08
  • 打赏
  • 举报
回复
<asp:LinkButton CommandName="select" CommandArgument='<%#Eval("ID") %>'
加一个CommandArgument='<%#Eval("ID") %>' <asp:LinkButton CommandName="delete" CommandArgument='<%#Eval("ID") %>'[/code] 加一个[color=#FF0000]CommandArgument='<%#Eval("ID") %>' 当你点击这个LinkButton时,先判断if(e.CommandName=="select")然后就能string id=e.CommandArgument.ToString();得到你点击这一行的主键ID
Hauk 2012-11-08
  • 打赏
  • 举报
回复
CommandName用于触发Command事件后判断该做什么操作。 如果设置update,insert,select的话,可以触发默认的对应操作。 如果是自定义按钮,或其他CommandName的话。可以在Command事件中判断e.CommandName来做不同的操作。 SelectParameters的设置:

            <SelectParameters>
                <asp:ControlParameter ControlID="控件名称" Name="SQL中的参数名" PropertyName="控件的属性" 
                    Type="String" />
            </SelectParameters>
在单击 GridView 控件中的按钮时,将引发 RowCommand 事件。 GridView 控件具有内置功能,用于进行编辑、删除和分页等操作。 还可以添加按钮并使用 RowCommand 事件向控件添加自定义功能。 可以通过下面的方式向 GridView 控件添加自定义功能: 向 GridView 控件添加 ButtonField 字段。 向 GridView 控件中的模板添加 Button、LinkButton 或 ImageButton 控件。 可以使用事件参数的 CommandName 属性在事件处理程序方法中标识按钮的功能。 如果使用的是 ButtonField 或 TemplateField 对象,则还可以使用 CommandArgument 属性来标识当前行。 使用的是 ButtonField 对象时,CommandArgument 属性自动设置为行索引。 使用的是 TemplateField 对象时,控件不会自动设置 CommandArgument 属性。 在这种情况下,如果必须在事件处理程序中确定行索引,则可以使用数据绑定表达式将该按钮的 CommandArgument 属性设置为行索引。 响应 GridView 控件中的按钮事件 将按钮的 CommandName 属性设置为标识其功能的字符串,如“打印”或“复制”。 如果使用的是 TemplateField 对象并且必须在事件处理程序方法中访问行索引,则将按钮的 CommandArgument 属性设置为标识当前行的表达式。 下面的示例演示如何将 TemplateField 列中某个按钮的 CommandArgument 属性设置为当前行索引。 在该示例中,该列包含一个显示购物车的 Button 控件。 VBC#C++F#JScript 复制不支持该语言或没有可用的代码示例。 VBC#C++F#JScript 复制 CommandName="AddToCart" CommandArgument="" Text="Add to Cart" /> 为 GridView 控件的 RowCommand 事件创建一个方法。 在该方法中,执行下列操作: 检查事件参数对象的 CommandName 属性来查看传入什么字符串。 如果需要,使用 CommandArgument 属性检索包含该按钮的行的索引。 为用户单击的按钮执行相应的逻辑。 下面的示例演示响应 GridView 控件中的按钮单击的方法。 在该示例中,TemplateField 列中的按钮发送命令“AddToCart”。 RowCommand 事件处理程序确定被单击的按钮。 如果被单击的是购物车按钮,则代码执行相应的逻辑。

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧