搞不出来,只有请教大家了,关于得到datalist中linkbutton显示的值的问题。。。。。。。。。。

sundotnet 2003-08-21 05:42:39
我在datalist的模版列中放置了linkbutton。我想在我单击任何linkbutton的时候,在label上能写出相应linkbutton上显示的字符。我的程序如下,多谢帮忙!(Page_Load没有问题,可以正常显示列表,在MyDataList_Select里不知道该怎么写)

<HTML>
<HEAD>
<title></title>
<script language="C#" runat="server">
void Page_Load(object sender, EventArgs E)
{
OleDbConnection DangManaConn = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0;Data Source ="+Server.MapPath("DangMana.mdb"));
OleDbCommand selectCMD = new OleDbCommand("SELECT Numb FROM tCheck", DangManaConn);
OleDbDataAdapter opermanaDA = new OleDbDataAdapter();
opermanaDA.SelectCommand = selectCMD;
DataSet opermanaDS = new DataSet();
opermanaDA.Fill(opermanaDS, "tCheck");
DataList1.DataSource = opermanaDS.Tables["tCheck"].DefaultView;
DataList1.DataBind();
}
void MyDataList_Select(object sender, EventArgs E)
{
label1.Text=((Label)DataList1.SelectedItem.FindControl("button1")).Text;
}
</script>
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<asp:DataList id="DataList1" runat="server" GridLines="Both" RepeatDirection="Horizontal" RepeatColumns="10" OnSelectedIndexChanged="MyDataList_Select" DataKeyField="Numb">
<ItemTemplate>
<asp:LinkButton id="button1" CommandName="Select" Text='<%# DataBinder.Eval(Container.DataItem,"Numb")%>' Runat="server"/>
</ItemTemplate>
</asp:DataList>
<asp:Label ID=label1 text="clicked" Runat=server/>
</form>
</body>
</HTML>
...全文
39 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ga3ga3 2003-08-23
  • 打赏
  • 举报
回复
我测试了。可以的啊

我的测试代码: .aspx页面 有datagrid1,label1 2个控件。datagrid1只有1例UserName,和模版例(含linkbutton)commandname为link

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
If Not IsPostBack Then
Bind()
End If

End Sub

Private Sub Bind()
Dim conn As New System.Data.SqlClient.SqlConnection(System.Configuration.ConfigurationSettings.AppSettings("WorkLogDB"))
Dim comm As New System.Data.SqlClient.SqlCommand
Dim ds As New DataSet
Dim adapter As New System.Data.SqlClient.SqlDataAdapter(comm)
With comm
.Connection = conn
.CommandText = " Select UserName From [User] "
adapter.SelectCommand = comm
.Connection.Open()
adapter.Fill(ds)
Me.DataGrid1.DataSource = ds.Tables(0).DefaultView
Me.DataGrid1.DataBind()
.Connection.Close()
End With

End Sub

Private Sub DataGrid1_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.ItemCommand
Select Case e.CommandName.ToUpper
Case "link".ToUpper
Me.Label1.Text = e.Item.Cells(0).Text

End Select
End Sub
sundotnet 2003-08-22
  • 打赏
  • 举报
回复
to vbdelphi(小笨笨):
我之所以编译你的代码不通过,我发现是因为我的'E'的大小些不一致,现在都改成'e',编译可以通过,可是后来出现的问题和saucer(思归, .NET MVP)一样。
to ga3ga3(噶3噶3):
使用你的方法在编译的时候提示:
编译器错误信息: CS0117: “System.Web.UI.WebControls.DataGridItem”并不包含对“Cell”的定义

三位的方法都试了,还是解决不了。
sundotnet 2003-08-22
  • 打赏
  • 举报
回复
to saucer(思归, .NET MVP):
我把你的代码替换了我的MyDataList_Select部分,编译虽然通过,但是在点LinkButton的时候,还是不能再Label上面显示,在IE的状态栏上会出现“网页上有错误”。
to ga3ga3(噶3噶3) :
使用你的代码替换后出现的问题和vbdelphi(小笨笨)一样,编译的时候提示:
编译器错误信息: CS0246: 找不到类型或命名空间名称“e”(是否缺少 using 指令或程序集引用?)
还有我想问,我在DataList里面使用的是OnSelectedIndexChanged="MyDataList_Select",应该没有错吧?
谢谢!
ga3ga3 2003-08-22
  • 打赏
  • 举报
回复
????
void MyDataList_ItemCommand(object sender, DataGridCommandEv E)
{
if(e.CommandName=="Select")
{
//label1.Text=((LinkButton)e.Item.FindControl("button1")).Text;
label1.Text=e.Item.Cell(x).Text;

}
}


x是数字,表示linkbutton所在列
sundotnet 2003-08-22
  • 打赏
  • 举报
回复
再up!
saucer 2003-08-22
  • 打赏
  • 举报
回复
C# is case-sensitive
saucer 2003-08-22
  • 打赏
  • 举报
回复
# is case-sensitive, also, you should cast it to LinkButton instead:

void MyDataList_Select(object sender, EventArgs e)
{
label1.Text=((LinkButton)DataList1.SelectedItem.FindControl("button1")).Text;
}
sundotnet 2003-08-21
  • 打赏
  • 举报
回复
upup
sundotnet 2003-08-21
  • 打赏
  • 举报
回复
up
sundotnet 2003-08-21
  • 打赏
  • 举报
回复
to vbdelphi(小笨笨)
编译不通过,提示说:
编译器错误信息: CS0246: 找不到类型或命名空间名称“e”(是否缺少 using 指令或程序集引用?)
vbdelphi 2003-08-21
  • 打赏
  • 举报
回复
void MyDataList_ItemCommand(object sender, DataGridCommandEv E)
{
if(e.CommandName=="Select")
{
label1.Text=((LinkButton)e.Item.FindControl("button1")).Text;
}
}
Cathy1 2003-08-21
  • 打赏
  • 举报
回复
up

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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