在我的网络应用程序中,我有一个数据列表,我绑定了一些图像。在datalist itemcommand事件中,我编写了一些未触发的代码,我的意思是itemcomand事件没有触发。你能帮我吗。 这是我的源代码
DataList控件:
<asp:DataList ID="DLQuickVideos" runat="server" RepeatColumns ="2" CellPadding="0" CellSpacing="0" OnItemCommand="DLQuickVideos_ItemCommand" >
<ItemTemplate>
<asp:ImageButton ID="imgbtn" runat="server" ImageUrl='<%# "../Trailorvideos/"+ Eval("SnapShot") %>' CommandArgument='<%# Eval("video")+"|"+Eval("videoid") %>' CausesValidation="false" Width="111px" Height="83px" BorderStyle="double" BorderWidth="4px" BorderColor="#A70202" />
</ItemTemplate>
</asp:DataList>
事件处理程序:
protected void DLQuickVideos_ItemCommand(object source, DataListCommandEventArgs e)
{
try
{
string eval = e.CommandArgument.ToString();
int k = eval.IndexOf("|");
videoname = eval.Substring(0, k);
videoid = eval.Substring(k + 1);
string move = Request.QueryString["movie"].ToString();
if (Request.Browser.Browser == "IE")
{
dvplayer.InnerHtml = "<object id='player' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' name='player' width='500' height='350'> <param name='movie' value='player-viral.swf' /> <param name='allowfullscreen' value='true' /> <param name='allowscriptaccess' value='always' /> <param name='flashvars' value='file=~/User/Trailorvideos/" + videoname + "&autostart=true' /> <p><a href='http://get.adobe.com/flashplayer'>Get Flash</a> to see this player.</p> </object>";
}
else
{
dvplayer.InnerHtml = "<object type='application/x-shockwave-flash' data='player-viral.swf' width='500' height='350'> <param name='movie' value='player-viral.swf' /> <param name='allowfullscreen' value='true' /> <param name='allowscriptaccess' value='always' /> <param name='flashvars' value='file=~/User/Trailorvideos/" + videoname + "&autostart=true' /> <p><a href='http://get.adobe.com/flashplayer'>Get Flash</a> to see this player.</p> </object>";
}
GetQuickList(videoid);
}
catch (Exception ex)
{
}
}
以上代码.cs代码
答案 0 :(得分:7)
您已发布这是您的页面加载事件:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) //this IF statement is what prevents re-binding on PostBack
{
GetQuickList(videoid, moviename);
}
else
{
GetQuickList(videoid, moviename)
}
}
这不起作用。你不能在回发后数据绑定。否则,任何挂起的事件处理程序请求都将被取消。
您必须删除此if语句的else部分。
答案 1 :(得分:4)
答案 2 :(得分:1)
为按钮添加命令名称。我认为这就是原因。
HTH。
答案 3 :(得分:1)
我的猜测是你没有在回发上数据绑定DataList。如果控件不是数据绑定,则不会触发事件。你可以发布你的数据绑定代码,可能在Page_Load?
答案 4 :(得分:1)