Datalist里使用Button如何选取某一行,怎么取某一列的Text

5 篇文章 1 订阅
1 篇文章 0 订阅

环境:vs2019 里的Net.asp开发

情况1

:我做的是考试系统里面的一个考试发布界面在这里插入图片描述
用的是Datalist

预期结果

:点击第1行的发布就读取第一行的试卷编号,然后发布。点击第2行的发布就读取第2行的试卷编号,然后发布。

实际结果

:点击发布是没反应的,原因是onclick在Datalist的情景下无法判断是哪一行的button(你写代码的时候只写了一个button)

解决方法


这时候我们在.ASP文件里,给Datalist加一个OnItemCommand=“DataList1_ItemCommand”;
给button加上一个属性CommandName=“名字_1”,还有一个属性CommandArgument=’<%#Eval(“试卷编号”) %>’,当然这些操作之前你要先完成数据绑定。

最后,我再用Session[“试卷编号_发布”]实现页面之间的数据传递

在.cs文件里添加一个方法

      protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
        {
            if (e.CommandName == "名字_1")//此处判断响应的组件是不是按钮
            {
                 Session["试卷编号_发布"] = 		e.CommandArgument.ToString();//此处将你所点击按钮的那一行的数据保存起来。
                        //跳转至选择员工界面进行发布
                        Response.Redirect("发布考试_选择员工.aspx");
            }
        }

历程

:想了一个晚上都找不到办法,问了老师老师直接让我去实验室找那的
同学帮我解答,我一想这哪里好意思啊,万一很简单我不是尴尬死,我就说,课本上一定有,我就找datalist,datalist里面没有command相关的,我就去翻buttom这一页的,发现还有个CommanArgument也可以传递参数。现在我做的Datalist里每一行结尾都有一个button,我就想能不能每一行的button里的CommanArgument给它弄一个本行的变量,例如’<%#Eval(“试卷编号”) %>’,如果可以那不就可以用来传递一行的数据啦?试试看果然可以。

要获取表中某一行的某一列数据,需要使用适配器(Adapter)来管理数据和表项。在适配器中,可以重写 `getView()` 方法来设置每个表项的视图,并设置相关数据。以 `ArrayAdapter` 为例,可以通过以下方式获取表中某一行的某一列数据: 1. 获取适配器中的数据源,例如一个 `ArrayList` 对象。 ```java ArrayList<String> dataList = new ArrayList<>(); ArrayAdapter<String> adapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, dataList); ``` 2. 在 `getView()` 方法中获取该行数据。 ```java @Override public View getView(int position, View convertView, ViewGroup parent) { View view = super.getView(position, convertView, parent); String rowData = dataList.get(position); return view; } ``` 在上述代码中,`position` 参数表示当前表项的位置,`dataList.get(position)` 表示获取该行数据。如果需要获取某一列数据,可以在数据源中定义一个类或结构体,将每一行数据封装成一个对象,并在适配器中使用该对象来管理数据。例如: ```java public class RowData { public String col1; public String col2; // ... } ArrayList<RowData> dataList = new ArrayList<>(); ArrayAdapter<RowData> adapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, dataList); @Override public View getView(int position, View convertView, ViewGroup parent) { View view = super.getView(position, convertView, parent); RowData rowData = dataList.get(position); String col1Data = rowData.col1; String col2Data = rowData.col2; // ... return view; } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值