如何使用API​​的数据编写具有建议功能的组合框?

问题描述

首先,我不是开发人员,这是我第一次为这种复杂性编写代码(至少对我而言)。任何帮助/指导将不胜感激。

该程序的目的是在输入名称后从API URL中检索员工用户ID(或签名)。

现在我的程序没有显示任何错误,但是当我按开始键时,我的组合框(标记为“名称”)没有显示任何建议,并且在文本框2(标记为“用户ID”)中也未显示任何信息)。

我想补充一点,最初我有一个文本框而不是组合框,然后我就能够正确检索数据。当我切换到组合框时,发生了问题。预先谢谢你。

这是我的JSON字符串:

[{“ signature”:“ JANDOW”,“ firstName”:“ Jane”,“ fullName”:“ Dow,Jane”,“ lastName”:“ Dow”}]

我的表单代码是:

namespace TimeSheets_Try_11

{
    public partial class Form1 : Form
    {
        WebAPI WA = new WebAPI();
      

        public Form1()
        {
            InitializeComponent();
            webbrowser1.Url = new Uri(StaticStrings.UrlIora);
        }

        private void label1_Click(object sender,EventArgs e)
        {    
        }

        private void button1_Click(object sender,EventArgs e)
        {    
            string sgname; string projectstring;
            projectstring = comboBox1.Text.ToString();
            sgname = WA.Getsignature(projectstring);
            textBox2.Text = sgname; 
        }

        private void textBox2_TextChanged(object sender,EventArgs e)
        {    
        }

        private void webbrowser1_DocumentCompleted(object sender,WebbrowserDocumentCompletedEventArgs e)
        {    
        }

        private void Form1_Load(object sender,EventArgs e)
        {    
        }

        private void comboBox1_SelectedindexChanged(object sender,EventArgs e)
        {                
        }
    }
}

调用该API的代码是:

namespace TimeSheets_Try_11.Controllers
{
    class WebAPI
    {
        public string Getsignature(string name)
        {   
            var cookies = FullWebbrowserCookie.GetCookieInternal(new Uri(StaticStrings.UrlIora),false);
            WebClient wc = new WebClient();
            wc.Encoding = System.Text.Encoding.UTF8;
            wc.Headers.Add("Cookie:" + cookies);
            wc.Headers.Add("Content-Type","application/x-www-form-urlencoded");
            wc.UseDefaultCredentials = true;
            string uri = "";

            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

            uri = StaticStrings.UrlIora + name + "&%24format=json&%24top=30&%24filter=status%20eq%20%27Active%27&%24count=true";
            var response = wc.DownloadString(uri);

            var status = JsonConvert.DeserializeObject<List<Employeename>>(response);
            string signame = status.Select(js => js.signature).FirstOrDefault();
            return signame;   
        }
    }
}

我定义变量的代码是:

namespace TimeSheet_Try11_Models
{ 
        public class Employeename
        {
            public string signature { get; set; }
            public string firstName { get; set; }
            public string fullName { get; set; }
            public string lastName { get; set; }
        }

        public class Root
        {
            public List<Employeename> Employeename { get; set; }
        }    
    }

Windows form design

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)