获取DataList控件的主键和索引

“哈哈,看了你这篇博文http://www.cnblogs.com/insus/archive/2013/01/20/2868211.html,只有效果,但没有结果,我怎样获取选择行的相关记录?”

Insus.NET首先多谢网友对上面那篇博文的关注。解决你的问题,可以尝试获取选择行的索引或是主键即可,能获取到主键,其它字段的值,也可以获取到了。

下图中,高亮选择区,即是针对问题解决而在原在代码添加的部分。一是在DataList控件添加一个DataKeyField,以便获取到它的主键值,另外还添加了两个铵钮及一个Label标答,用来显示选择结果,真正将来你也许用不上标签,因为获取到结果之后,就可以进行你想的要事情了。

 

两个铵钮事件,都是很简单,Insus.NET相信你能看得懂,如果遇上不明,可以讨论:

复制代码
View Code
 protected void Button1_Click(object sender, EventArgs e)
    {
        Button button = (Button)sender;
    
        if (FindControl("DataListConstellation") == null) return;

        DataList dlconstellation = (DataList)FindControl("DataListConstellation");

        foreach (DataListItem dli in dlconstellation.Items)
        {
            if (dli.FindControl("RadioButtonSelect") == null) return;

            RadioButton rb = (RadioButton)dli.FindControl("RadioButtonSelect");
            if (rb.Checked)
            {
                LabelSelectedResult.Text = string.Format("你执行铵钮'{0}',选择行的索引是:{1}; 主键值是:{2}", button.Text, dli.ItemIndex.ToString(), dlconstellation.DataKeys[dli.ItemIndex].ToString());
                break;
            }
            else
            {
                LabelSelectedResult.Text = string.Format("你执行铵钮'{0}',没有选择任何一行。", button.Text);
            }
        }
    }

    protected void Button2_Click(object sender, EventArgs e)
    {
        Button button = (Button)sender;
        DataList dlconstellation = (DataList)FindControl("DataListConstellation");
        for (int i = 0; i < dlconstellation.Items.Count; i++)
        {
            RadioButton rb = (RadioButton)dlconstellation.Items[i].FindControl("RadioButtonSelect");

            if (rb.Checked)
            {
                LabelSelectedResult.Text = string.Format("你执行铵钮'{0}',选择行的索引是:{1}; 主键值是:{2}", button.Text, i.ToString(), dlconstellation.DataKeys[i].ToString());
                break;
            }
            else
            {
                LabelSelectedResult.Text = string.Format("你执行铵钮'{0}',没有选择任何一行。", button.Text);
            }
        }
    }
复制代码


 

posted @   Insus.NET  阅读(1941)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2012-01-20 无法解决 equal to 操作中 "SQL_Latin1_General_CP1_CI_AS" 和 "Chinese_PRC_CI_AS" 之间的排序规则冲突。
2012-01-20 sp_executesql 使用复杂的 Unicode 表达式
2012-01-20 OBJECTPROPERTY与sp_rename更改对象名称
2010-01-20 Generics and Linq demo
2010-01-20 Two ListBox selector demo
点击右上角即可分享
微信分享提示