如题,怎么办啊?数据已经绑定好了,但是始终不能触发datalist里面的linkbutton的事件。
解决方案 »
- MVC Post 提交遇到的奇怪大难题!!!
- 如何在母版页中取得当前嵌入的子页面的名字
- javascript字符串中的单引号、双引号的问题
- UpdatePanel与FileUpload的问题
- DataGrid 实践丢失怎么解决啊
- sql2005新建sql server注册
- 哪位大哥有微软亚洲高校软件设计大赛的myTravel.net2008!
- forms验证,如何读出来变量值。。。
- SQL索引问题。郁闷啊?CREATE UNIQUE CLUSTERED INDEX ncptcd_main ON ncptcd(partcode,subcode)
- 如何在运行asp.net程序时,让crystal report(带参数)的参数输入对话框弹出来?
- asp.net 调试中 全部程序和单个页面
- 论坛版块用什么数据控件显示好?
<asp:LinkButton id="lbtnFirst" CssClass="csslink" Text="首页" CommandName="First" runat="server" />
<asp:DataGrid ID="dtg_Body" runat="server" AutoGenerateColumns="False" ShowHeader="False" EnableViewState ="true" OnItemDataBound="dtg_Body_ItemDataBound">
<SelectedItemStyle CssClass="datagrid_selectedstyle"></SelectedItemStyle>
<ItemStyle CssClass="datagrid_itemstyle" HorizontalAlign="Center"></ItemStyle>
<Columns>
<asp:TemplateColumn ItemStyle-Height="60px" ItemStyle-HorizontalAlign="center" ItemStyle-VerticalAlign="Top">
<ItemTemplate>
<asp:label runat="server" ID="lbl_Date1" Text='<%# DataBinder.Eval(Container, "DataItem.Date1") %>' ></asp:label>
<div runat="server" id="div21" style="overflow: auto; width: 100%;">
<asp:DataList runat="server" ID="dl_TPTitle1" EnableViewState="true" >
<ItemTemplate>
<%# DataBinder.Eval(Container, "DataItem.TPDate","{0:h:m}")%>
<asp:LinkButton runat="server" ID="lbtn_TP" Text='<%# DataBinder.Eval(Container, "DataItem.TPTitle") %>' CommandName="ViewTP" ></asp:LinkButton>
<asp:TextBox runat="server" ID="txt_Status" Visible="false" Text='<%# DataBinder.Eval(Container, "DataItem.Status") %>'></asp:TextBox>
<asp:Label runat="server" ID="lbl_Month" Visible="true" Text='<%# DataBinder.Eval(Container, "DataItem.TPID") %>'></asp:Label>
</ItemTemplate>
</asp:DataList>
</div>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn ItemStyle-Height="60px" ItemStyle-HorizontalAlign="center" ItemStyle-VerticalAlign="Top">
<ItemTemplate>
<asp:label runat="server" ID="lbl_Date2" Text='<%# DataBinder.Eval(Container, "DataItem.Date2") %>' ></asp:label>
<div runat="server" id="div22" style="overflow: auto; width: 100%;">
<asp:DataList runat="server" ID="dl_TPTitle2" EnableViewState="False" >
<ItemTemplate>
<%# DataBinder.Eval(Container, "DataItem.TPDate", "{0:h:m}")%>
<asp:LinkButton runat="server" ID="lbtn_TP" Text='<%# DataBinder.Eval(Container, "DataItem.TPTitle") %>' CommandName="ViewTP" ></asp:LinkButton>
<asp:TextBox runat="server" ID="txt_Status" Visible="false" Text='<%# DataBinder.Eval(Container, "DataItem.Status") %>'></asp:TextBox>
<asp:Label runat="server" ID="lbl_Month" Visible="false" Text='<%# DataBinder.Eval(Container, "DataItem.TPID") %>'></asp:Label>
</ItemTemplate>
</asp:DataList>
</div>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</div>
{ if (e.Item.ItemType.ToString() == "Item" || e.Item.ItemType.ToString() == "AlternatingItem")
{ DataList TPTitle1 = (DataList)e.Item.FindControl("TPTitle1"); TPTitle1.ItemCommand += new DataGridCommandEventHandler(TPTitle1_ItemCommand); } }
protected void TPTitle1_ItemCommand(object source, DataGridCommandEventArgs e)
{//。
}
if(e.Item.ItemType ==ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
protected void TPTitle1_ItemCommand(object source, DataGridCommandEventArgs e)
{}
应该为:
protected void TPTitle1_ItemCommand(object source, DataListCommandEventArgs e)
protected void dtg_Body_ItemCreated(object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
for (int i = 1; i <= 7; i++)
{
DataList dl_TPTitle = new DataList();
dl_TPTitle = (DataList)e.Item.FindControl("dl_TPTitle" + i.ToString());
dl_TPTitle.ItemCommand += new DataListCommandEventHandler(dl_TPTitle_ItemCommand);ataBound);
}
}
}注:在前台有7个datalist分别是:dl_TPTitle1 到dl_TPTitle7,所以用一个循环.protected void dl_TPTitle_ItemCommand(object sender, DataListCommandEventArgs e)
{
LinkButton lbtn_TP = new LinkButton();
lbtn_TP = (LinkButton)e.Item.FindControl("lbtn_TP");
if (e.CommandName == "ViewTP")
{
Label label = new Label();
label = (Label)(e.Item.FindControl("lb_Month"));
string strTPID = label.Text;
ShowModalDialog("WeekAndMonthTask_Detail.aspx?TPID=" + strTPID, "280", "600", "btn_MRefresh");
}
}
中断跟踪,dl_TPTitle_ItemCommand()就没有执行到.目的是,点击LinkButton里面的内容,弹出新窗口WeekAndMonthTask_Detail.asps谢谢
另外DataList dl_TPTitle = new DataList();
dl_TPTitle = (DataList)e.Item.FindControl("dl_TPTitle" + i.ToString());
改成
DataList dl_TPTitle = (DataList)e.Item.FindControl("dl_TPTitle" + i.ToString());
就可以
{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
for (int i = 1; i <= 7; i++)
{
DataList dl_TPTitle = new DataList();
dl_TPTitle = (DataList)e.Item.FindControl("dl_TPTitle" + i.ToString());
dl_TPTitle.ItemCommand += new DataListCommandEventHandler(dl_TPTitle_ItemCommand);
}
}
}
这是.net2003设计时就定了的,貌似没有解决办法。2005好了。
又或者你试试自己做个委托挂接事件。