datalist小问题

kamasaki1 2010-02-04 11:31:38
如果一个DATALIST里共5个ITEMS,那么每一个下面都有一个绑定BUTTON,我现在想请教大家的是,如何能点BUTTON的时候,得出该BUTTON对应的ITEMS序号呢?也许交代得不是很清楚,请大家见谅。
...全文
181 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
kamasaki1 2010-02-07
  • 打赏
  • 举报
回复
还是不得行
HarveyYan 2010-02-04
  • 打赏
  • 举报
回复
ItemCommand事件

protected void DataList1_ItemCommand(object source, DataGridCommandEventArgs e)
{
//e.Item 就是你要取得的Item
}
Kobayashi 2010-02-04
  • 打赏
  • 举报
回复
获取它的IndexOF()
就可以了
kamasaki1 2010-02-04
  • 打赏
  • 举报
回复
哎。。。我也知道我说得不大清楚,这样,5个BUTTON,也就是datalist1下5个ITEMS对应的BUTTON,即(Button)DataList1.Items[i].FindControl("Button"),0<=i<=4,我现在就是想知道如何在点特定BUTTON的时候得到其对应的是哪个ITEMS,或者就是直接得到i的值
sdnjiejie65 2010-02-04
  • 打赏
  • 举报
回复
你是获取datalist每一行点击button的主键值
PandaIT 2010-02-04
  • 打赏
  • 举报
回复


你想问什么?
PSSonyXbox 2010-02-04
  • 打赏
  • 举报
回复

楼主的头像好“酷”呀,
然后你的问题是有点不太明白
sdnjiejie65 2010-02-04
  • 打赏
  • 举报
回复
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{

if(e.item.itemtype == listitemtype.item || e.item.itemtype == listitemtype.alternatingitem)
string 行号 = e.Item .ItemIndex .tostring();

}
kamasaki1 2010-02-04
  • 打赏
  • 举报
回复
datalistitem并不包含dataitemindex的定义
sdnjiejie65 2010-02-04
  • 打赏
  • 举报
回复
CommandArgument=' <%#Eval("表的ID")%>'
改成
CommandArgument=' <%#Container.DataItemIndex %>'

就可以...

方法一样
sdnjiejie65 2010-02-04
  • 打赏
  • 举报
回复
CommandArgument=' <%#Eval("表的ID")%>'
改成
CommandArgument='<%#Container.DataItemIndex+1 %>'

就可以...

方法一样
kamasaki1 2010-02-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sdnjiejie65 的回复:]
. aspx
<%@ Page Language="C#" AutoEventWireup="false" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<asp:DataList ID="DataList1" runat="server" OnItemCommand="DataList1_ItemCommand">
            <ItemTemplate>
                <asp:Button ID="Button1" runat="server" Text="Button" CommandArgument=' <%#Eval("表的ID")%>' CommandName="getRow" ForeColor="Blue" />
                <asp:Label ID="Label1" runat="server" Text=' <%# Eval("ITEMS绑定字段") %>'> </asp:Label>
            </ItemTemplate>
  </asp:DataList>


///.cs代码
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
    {
        if (e.CommandName == "getRow")
        {
            string  i = e.CommandArgument.ToString ();//sendid
            Response.Write(" <script>alert('"+i+"'); </script>");
         
        }
    }
[/Quote]

这是取得按钮绑定的ID,这个我知道。。。。但是对我现在的问题是没有什么用的。。。我只是想不通过UPDATECOMMAND,单独设一个BUTTON来对DATALIST做更新修改。本来语句是写成这样
string 编号 = e.CommandArgument.ToString();
string aa = ((TextBox)DataList1.Items[i].FindControl("TextBox1")).Text;
string bb = ((TextBox)DataList1.Items[i].FindControl("TextBox2")).Text;
string cc = ((TextBox)DataList1.Items[i].FindControl("TextBox3")).Text;
string dd = ((TextBox)DataList1.Items[i].FindControl("TextBox4")).Text;
string ee = ((TextBox)DataList1.Items[i].FindControl("TextBox5")).Text;
SqlCommand cmd = new SqlCommand("update 安全学习 set 地点='" + aa + "',主持人='" + bb + "',出席人='" + cc + "',主题='" + dd + "',内容='" + ee + "' where 编号='" + 编号 + "'", cn);...................
所以现在的问题就是i的值是需要通过BUTTON来取固定的对应值,因为是直接在DATALIST查询结果里改。i值不确定的话,无法正确更新。不过如果大家能有好的方法来替代我现在的想法也可以。。。。。
liulangdeyuyu 2010-02-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sdnjiejie65 的回复:]
. aspx
<%@ Page Language="C#" AutoEventWireup="false" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<asp:DataList ID="DataList1" runat="server" OnItemCommand="DataList1_ItemCommand">
            <ItemTemplate>
                <asp:Button ID="Button1" runat="server" Text="Button" CommandArgument=' <%#Eval("表的ID")%>' CommandName="getRow" ForeColor="Blue" />
                <asp:Label ID="Label1" runat="server" Text=' <%# Eval("ITEMS绑定字段") %>'> </asp:Label>
            </ItemTemplate>
  </asp:DataList>


///.cs代码
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
    {
        if (e.CommandName == "getRow")
        {
            string  i = e.CommandArgument.ToString ();//sendid
            Response.Write(" <script>alert('"+i+"'); </script>");
         
        }
    }
[/Quote]
这个就好
会飞的老鱼 2010-02-04
  • 打赏
  • 举报
回复
路过
qq497525725 2010-02-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sdnjiejie65 的回复:]
. aspx
<%@ Page Language="C#" AutoEventWireup="false" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<asp:DataList ID="DataList1" runat="server" OnItemCommand="DataList1_ItemCommand">
            <ItemTemplate>
                <asp:Button ID="Button1" runat="server" Text="Button" CommandArgument=' <%#Eval("表的ID")%>' CommandName="getRow" ForeColor="Blue" />
                <asp:Label ID="Label1" runat="server" Text=' <%# Eval("ITEMS绑定字段") %>'> </asp:Label>
            </ItemTemplate>
  </asp:DataList>


///.cs代码
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
    {
        if (e.CommandName == "getRow")
        {
            string  i = e.CommandArgument.ToString ();//sendid
            Response.Write(" <script>alert('"+i+"'); </script>");
         
        }
    }
[/Quote]
up
gsz_stylm 2010-02-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sdnjiejie65 的回复:]
. aspx
<%@ Page Language="C#" AutoEventWireup="false" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<asp:DataList ID="DataList1" runat="server" OnItemCommand="DataList1_ItemCommand">
            <ItemTemplate>
                <asp:Button ID="Button1" runat="server" Text="Button" CommandArgument=' <%#Eval("表的ID")%>' CommandName="getRow" ForeColor="Blue" />
                <asp:Label ID="Label1" runat="server" Text=' <%# Eval("ITEMS绑定字段") %>'> </asp:Label>
            </ItemTemplate>
  </asp:DataList>


///.cs代码
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
    {
        if (e.CommandName == "getRow")
        {
            string  i = e.CommandArgument.ToString ();//sendid
            Response.Write(" <script>alert('"+i+"'); </script>");

        }
    }
[/Quote]
这个就是
sdnjiejie65 2010-02-04
  • 打赏
  • 举报
回复
. aspx
<%@ Page Language="C#" AutoEventWireup="false" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<asp:DataList ID="DataList1" runat="server" OnItemCommand="DataList1_ItemCommand">
<ItemTemplate>
<asp:Button ID="Button1" runat="server" Text="Button" CommandArgument='<%#Eval("表的ID")%>' CommandName="getRow" ForeColor="Blue" />
<asp:Label ID="Label1" runat="server" Text='<%# Eval("ITEMS绑定字段") %>'></asp:Label>
</ItemTemplate>
</asp:DataList>


///.cs代码
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName == "getRow")
{
string i = e.CommandArgument.ToString ();//sendid
Response.Write("<script>alert('"+i+"');</script>");

}
}

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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