回答你的第二问:
<asp:DataList id="DataList1" runat="server">
<ItemTemplate>
<asp:Button id="Button2" runat="server" Text="Button" onClick="getName">
</asp:Button>
</ItemTemplate>
</asp:DataList>
在后台写:
public void getName(object sender, System.EventArgs e)
{ //你的代码;
}
//备注;
方法一定要声明为public; onClick的调用格式;
finished; good luck;
<asp:DataList id="DataList1" runat="server">
<ItemTemplate>
<asp:Button id="Button2" runat="server" Text="Button" onClick="getName">
</asp:Button>
</ItemTemplate>
</asp:DataList>
在后台写:
public void getName(object sender, System.EventArgs e)
{ //你的代码;
}
//备注;
方法一定要声明为public; onClick的调用格式;
finished; good luck;
Compiler Error Message: CS0123: Method 'MjmWebUI.Forum.k_showarticle.del_forumre(object, System.EventArgs)' does not match delegate 'void System.Web.UI.ImageClickEventHandler(object, System.Web.UI.ImageClickEventArgs)'Source Error: Line 70: height="240" alt="" src="file:///F:\project\mjm\B2C\MjmB2CProject\WebUIProjects\MjmWebUI\Images\ProductSmallImgs\bar3-2.gif"
Line 71: width="4">
Line 72: <asp:ImageButton id="delete" style="Z-INDEX: 109; LEFT: 168px; POSITION: absolute; TOP: 248px" runat="server"
Line 73: OnClick="del_forumre" ImageUrl="file:///F:\project\mjm\B2C\MjmB2CProject\WebUIProjects\MjmWebUI\Images\ProductSmallImgs\Delete.gif"
Line 74: Width="16px" Height="16px" CommandName="ItemCommand"></asp:ImageButton>
Source File: http://localhost/MjmWebUI/Forum/k_showarticle.aspx Line: 72
因为SelectedIndex是要自己设置的.
其实,ms的help里有例子;(千万别说你看不懂 ^_^)
-----前台-----
<asp:textbox id="TextBox1" runat="server" Height="24px" Width="112px">
<asp:datalist id="DataList1" runat="server" Width="208px" BorderColor="#999999" BorderStyle="Solid"
ForeColor="Black" BackColor="White" CellPadding="3" GridLines="Vertical" BorderWidth="1px">
<SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#000099"></SelectedItemStyle>
<AlternatingItemStyle BackColor="#CCCCCC"></AlternatingItemStyle>
<ItemTemplate>
<asp:Label id=lb_test Text="<%# Container.DataItem %>" Runat="server">
</asp:Label>
<asp:Button id="Button2" runat="server" Text="Button" OnClick="getName"></asp:Button>
</ItemTemplate>
<FooterStyle BackColor="#CCCCCC"></FooterStyle>
<HeaderStyle Font-Bold="True" ForeColor="White" BackColor="Black"></HeaderStyle>
</asp:datalist>
-----------后台-------------------------
private void BindDataList()
{
string[] sArr=new string[10];
for(int i=0; i<10 ; i++)
sArr[i]=i.ToString();
this.DataList1.DataSource = sArr;
this.DataList1.DataBind();
}public void getName(object sender, System.EventArgs e)
{
Response.Write("<script language=javascript>alert('you cliked me');</script>");
}private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
BindDataList();
}
private void DataList1_ItemCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
this.TextBox1.Text = e.Item.ItemIndex.ToString();
}
------
在 ItemCommand的事件中;不可能没有;
------
2:我只能得到button的Text; Label 是动态绑定数据的;我今天只能得到它的ID,得不到值;
this.TextBox3.Text=this.DataList1.Items[0].Controls[1];
因为button是静态的;因此能得到它的Text;
this.TextBox3.Text=((Button)this.DataList1.Items[0].Controls[3]).Text;
---------
sorry; 明天有时间再 解决吧;其实我的工作中也没有解决;是用了变通的方法;希望明天我或别人能帮你解决;
---------解决方法--第二问----------------
前台的Label 替换为 TextBox;
--------
private void DataList1_ItemCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
int index = e.Item.ItemIndex;
this.TextBox1.Text = index.ToString();
this.TextBox2.Text = this.DataList1.Items[index].Controls[1].ClientID;
this.TextBox3.Text = ((TextBox)this.DataList1.Items[index].Controls[1]).Text;
}
item 是指我点击的按钮所在的那个单元,items[].controls[]才指的是单元里的控件,对么
我还有一点不清楚的是,controls[int index]后面的index怎么确定,就是我怎么知道单元里每个控件的index呢,哪里可以设置么