DataGrid动态增加column后的DataGridItemEventArg事件处理函数调用不了?
DataGrid动态增加column后,怎么在动态增加的column列中,不能调用DataGridItemEventArgs事件。
::::::::datagrid ::::::::
<asp:datagrid id="Data" runat="server" Width="100%" OnDeleteCommand="Data_DeleteCommand" HorizontalAlign="Center"
HeaderStyle-VerticalAlign="Middle" HeaderStyle-Height="14px" BackColor="White" BorderStyle="Double"
BorderColor="Transparent" AllowSorting="True" AutoGenerateColumns="False" CellPadding="0"
GridLines="Horizontal" BorderWidth="3px" Font-Names="宋体" OnItemCommand="OnItemCommand_onClick">
<EditItemStyle BorderWidth="1px" CssClass="input" VerticalAlign="Middle" BackColor="LightGray"></EditItemStyle>
<AlternatingItemStyle Wrap="False"></AlternatingItemStyle>
<ItemStyle Wrap="False" BorderWidth="0px" BorderColor="Silver" BackColor="White"></ItemStyle>
<HeaderStyle Font-Bold="True" Wrap="False" Height="40px" BorderWidth="0px" VerticalAlign="Middle"
BackColor="Silver"></HeaderStyle>
<Columns>
<asp:TemplateColumn HeaderText="取消执行">
<HeaderStyle Wrap="False" HorizontalAlign="Center" Width="100px" VerticalAlign="Middle"></HeaderStyle>
<ItemStyle Wrap="False" HorizontalAlign="Center" VerticalAlign="Middle"></ItemStyle>
<ItemTemplate>
<asp:LinkButton runat="server" Text="取消执行" OnLoad="linkBtn_OnLoad" CommandName="Delete" CausesValidation="false"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn Visible="False" DataField="id" ReadOnly="True" HeaderText="ID号"></asp:BoundColumn>
<asp:BoundColumn DataField="missionName" HeaderText="任务名称">
<HeaderStyle Wrap="False" Width="100px"></HeaderStyle>
<ItemStyle Wrap="False"></ItemStyle>
<FooterStyle Wrap="False"></FooterStyle>
</asp:BoundColumn>
<asp:HyperLinkColumn DataTextField="name" HeaderText="执行人">
<HeaderStyle Wrap="False" Width="80px"></HeaderStyle>
<ItemStyle Wrap="False"></ItemStyle>
<FooterStyle Wrap="False"></FooterStyle>
</asp:HyperLinkColumn>
</Columns>
</asp:datagrid>
::::::::事件函数::::::::
public void OnItemCommand_onClick( object sender, DataGridCommandEventArgs e )
{
Response.Write(e.Item.DataSetIndex.ToString());
Response.End();
}
::::::::动态TemplateItem生成的类::::::::
namespace ITProject
{
public class CTemplateColumn:ITemplate
{
private string colname;
private string colnameTwo;
public CTemplateColumn(string cname, string cnameTwo)
{
colname=cname;
colnameTwo = cnameTwo;
}
//为了使用接口必须实现的方法
public void InstantiateIn(Control container)
{
LinkButton l1 = new LinkButton();
l1.DataBinding += new EventHandler(this.OnDataBindingTwo);
container.Controls.Add(l1);
LinkButton l = new LinkButton();
l.DataBinding += new EventHandler(this.OnDataBinding);
container.Controls.Add(l);
}
public void OnDataBinding(object sender, EventArgs e)
{
LinkButton l = (LinkButton) sender;
DataGridItem container = (DataGridItem)l.NamingContainer;
l.Text = ((DataRowView)container.DataItem)[colname].ToString();
}
public void OnDataBindingTwo(object sender, EventArgs e)
{
LinkButton l1 = (LinkButton) sender;
DataGridItem container = (DataGridItem)l1.NamingContainer;
l1.Text = ((DataRowView)container.DataItem)[colnameTwo].ToString();
}
}
}
为什么事件OnItemCommand_onClick不起任何作用?如果直接在DataGrid里面添加一个新的TemplateItem...它就可以正常执行,不知道是什么原因,谢谢。
问题点数:0、回复次数:9Top
1 楼saucer(思归)回复于 2004-09-01 13:20:41 得分 0
try to re-create the column upon postback in LoadViewState, see
DataGrid Web 伺服器控制項的常見問題
http://www.microsoft.com/taiwan/msdn/library/2002/Feb-2002/whitepaper/vbtchtopquestionsaboutaspnetdatagridservercontrol.htm
Top
2 楼rickjelly2004(每逢佳节倍思亲-------------快乐生活)回复于 2004-09-01 13:23:42 得分 0
upTop
3 楼dxphero(火鸟hero)回复于 2004-09-01 13:57:57 得分 0
调试一下Top
4 楼dxphero(火鸟hero)回复于 2004-09-01 13:59:21 得分 0
看看是否执行OnItemCommand_onClick事件
如果不行证明你没有触发他Top
5 楼oldjackyone(老兔子)(她妈妈说:以为你真的很帅么???)回复于 2004-09-01 16:18:54 得分 0
是没有执行OnItemCommand_onClick,但我都写的对的呀,怎么就会不执行OnItemCommand_onClick?如果直接添加一个TemplateItem在DataGrid里面,那么,它将会执行OnItemCommand_onClick事件.Top
6 楼zdm2008(软件民工)回复于 2004-09-01 16:48:59 得分 0
这么高深的问题呀,我还没研究过。Top
7 楼zdm2008(软件民工)回复于 2004-09-01 16:49:51 得分 0
我现在很少做WEB开发了,改做VC++了,不好意思。Top
8 楼oldjackyone(老兔子)(她妈妈说:以为你真的很帅么???)回复于 2004-09-01 17:38:39 得分 0
我自己顶,帮个忙啦,各位高手们。Top
9 楼flashasp(flashasp)回复于 2004-09-02 09:19:25 得分 0
友情UP^_^Top




