Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取Label-LinkButton-session的值_C#_Asp.net_Session_Label_Asplinkbutton - Fatal编程技术网

C# 获取Label-LinkButton-session的值

C# 获取Label-LinkButton-session的值,c#,asp.net,session,label,asplinkbutton,C#,Asp.net,Session,Label,Asplinkbutton,我在我的产品列表视图中添加了一个like按钮,而like按钮假设得到了广告标题和Adsid的值,以及点击了like btn的用户id,然后代码应该像代码中提到的那样存储这个加载项收藏夹表,但是我有一个问题,因为我在c#中仍然是biggner,我不知道如何很好地修复它,你能帮我吗(修复以下代码,因为我收到错误消息: “错误3当前上下文中不存在名称'Adstitlinkbtn' 错误2当前上下文中不存在名称“LabeladId” 如果你给用户添加一条信息,我也会很感激,如果他没有登录,他点击类似的按

我在我的产品列表视图中添加了一个like按钮,而like按钮假设得到了广告标题和Adsid的值,以及点击了like btn的用户id,然后代码应该像代码中提到的那样存储这个加载项收藏夹表,但是我有一个问题,因为我在c#中仍然是biggner,我不知道如何很好地修复它,你能帮我吗(修复以下代码,因为我收到错误消息:

“错误3当前上下文中不存在名称'Adstitlinkbtn'

错误2当前上下文中不存在名称“LabeladId”

如果你给用户添加一条信息,我也会很感激,如果他没有登录,他点击类似的按钮会收到一条信息“请登录,将此广告添加到你最喜欢的列表”

你可以找到这个屏幕记录,它可以解释我的意思

非常感谢你们所有人

 protected void likebtn_Click(object sender, ImageClickEventArgs e)
    {

        SqlConnection likecn = new SqlConnection(cs);
        SqlCommand likecmd = new SqlCommand();

        string sqlstatment = "INSERT INTO favourite (AdsID, UID, AdsTit) VALUES (@AdsID,@UID,@AdsTit)";

        likecmd.Connection = likecn;
        likecmd.CommandType = CommandType.Text;
        likecmd.CommandText = sqlstatment;

        //Insert the parameters first
        likecmd.Parameters.AddWithValue("@AdsID", Labeladsid);
        likecmd.Parameters.AddWithValue("@UID", Session["UsrNme"]);
        likecmd.Parameters.AddWithValue("@AdsTit", Adstitlinkbtn.Text);

        SqlDataAdapter ad = new SqlDataAdapter(likecmd);
        DataSet ds = new DataSet();
        ad.SelectCommand = likecmd;
        ad.Fill(ds);

        Response.Write("This Ads has been added to your Fovarite List");



    }


<asp:ListView ID="adsshow" runat="server" DataSourceID="locationdatalistshow" 
        style="text-align: left" >
<ItemTemplate>


            <div class="templist">

                <asp:Label ID="Labeladsid" runat="server" Text='<%# Eval("AdsID") %>' style="color: #ffffff"></asp:Label>
                <asp:ImageButton ID="ImageButton3" runat="server" Height="88px" Width="91px" 
                CssClass="imag1" ImageUrl='<%# "/images/AdsImgs/" + Eval("Img1") %>'  
                PostBackUrl='<%# "AdsDetails.aspx?Img1=" + Eval("AdsID") %>' />


                <asp:LinkButton ID="Adstitlinkbtn" runat="server" 
                style="font-weight: 700; color: #0066FF" Text='<%# Eval("AdsTit") %>' 
                CssClass="adstit" onclick="Adstitlinkbtn_Click"   
                 PostBackUrl='<%# "AdsDetails.aspx?AdsTit=" + Eval("AdsID") %>' ></asp:LinkButton>      

            <br />
            <asp:Label ID="AdsDescLabel" runat="server" Text='<%# Eval("AdsDesc") %>' 
                CssClass="adsdisc" />
            <br /><br />
            <br /><br />

            <asp:Label ID="CountryLabel" runat="server" Text='<%# Eval("Country") %>' 
                    style="font-family: Arial, Helvetica, sans-serif; font-size: small" />
            &nbsp;-
            <asp:Label ID="StateLabel" runat="server" Text='<%# Eval("State") %>' 
                    style="font-family: Arial, Helvetica, sans-serif; font-size: small" />
            &nbsp;-
            <asp:Label ID="CityLabel" runat="server" Text='<%# Eval("City") %>' 
                    style="font-size: small; font-family: Arial, Helvetica, sans-serif" />


            <div class="adsprice">Price:
            <asp:Label ID="AdsPriceLabel" runat="server" style="color: #FF0000" 
                Text='<%# Eval("AdsPrice") %>' /></div>
           <br /> 
           <div class="iconadsbox">
            <asp:ImageButton ID="likebtn" runat="server" 
                   ImageUrl="~/iconsimg/favoritestar2.png" OnClick="likebtn_Click" CommandName="like" />
                &nbsp;&nbsp;&nbsp;
                <asp:ImageButton ID="Sndmailtoadder" runat="server" 
                   ImageUrl="~/iconsimg/mailposter.png" OnClick="Sndmailtoadder_Click" />
                &nbsp;&nbsp;&nbsp;

                </div>


            <asp:Image ID="Image1" runat="server" CssClass="divideline"/>

            </div>


        </ItemTemplate>
    <LayoutTemplate>
        <asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder>
        <asp:DataPager ID="DataPager1" runat="server" PagedControlID="adsshow" PageSize="7">
    <Fields>
    <asp:NumericPagerField />
        <asp:NextPreviousPagerField />
    </Fields>
    </asp:DataPager>

        <br />
        </div>
    </LayoutTemplate>
    </asp:ListView>
protectedvoid-likebtn\u-Click(对象发送者,图像点击事件参数)
{
SqlConnection likecn=新的SqlConnection(cs);
SqlCommand likecmd=新SqlCommand();
string sqlstation=“插入收藏夹(AdsID、UID、AdsTit)值(@AdsID、@UID、@AdsTit)”;
likecmd.Connection=likecn;
likecmd.CommandType=CommandType.Text;
likecmd.CommandText=sqlstation;
//首先插入参数
likecmd.Parameters.AddWithValue(“@AdsID”,Labeladsid);
likecmd.Parameters.AddWithValue(“@UID”,Session[“UsrNme]”);
如ecmd.Parameters.AddWithValue(“@AdsTit”,Adstitlinkbtn.Text);
SqlDataAdapter ad=新的SqlDataAdapter(likecmd);
数据集ds=新数据集();
ad.SelectCommand=likecmd;
ad.Fill(ds);
回复。写下(“此广告已添加到您的Fovarite列表中”);
}





- - 价格:


创建一个bool值来表示用户是否登录(称之为bool loggedIn)。无论您的代码登录到哪里(您没有发布此代码),都将该bool设置为true。然后,当用户单击“like”按钮时,在“likebtn\u Click”方法中,检查bool:

if(!loggedIn)
{
 MessageBox.Show("Please login to add this ads to your favorite list");
 return;
 }

我相信您没有向我们显示所有标记。您似乎在网格视图或其他集合控件中。在这些控件中,为每个项目动态生成模板布局。因此,您的标签和链接按钮控件实际上并不存在。您需要做的是创建一个GridView\u命令事件,并在该代码中创建我无法访问该项中的控件

因此,基本上您创建了一个模板项,并且这些控件在运行时动态生成,这就是为什么您在设计时无法使用这些控件的原因。如果您将剩余的标记发布给我或任何其他需要的人,可以为您提供更具体的帮助

protected void adsshow_ItemCommand(object sender, ListViewCommandEventArgs e)
{
    if (e.CommandName == "like")
    {
        var lblAds = e.Item.FindControl("Labeladsid") as Label;
        var lbtn = e.Item.FindControl("Adstitlinkbtn") as LinkButton;

        var id = lblAds.Text;
        var title = lbtn.Text;


    }
}

<asp:ListView ID="adsshow" runat="server" DataSourceID="locationdatalistshow"
        style="text-align: left" onitemcommand="adsshow_ItemCommand" >
<ItemTemplate>
protectedvoid adsshow\u ItemCommand(对象发送方,ListViewCommandEventArgs e)
{
如果(如CommandName==“like”)
{
var lblAds=e.Item.FindControl(“Labeladsid”)作为标签;
var lbtn=e.Item.FindControl(“Adstitlinkbtn”)作为链接按钮;
var id=lblAds.Text;
var title=lbtn.Text;
}
}



注意到我在ListView中添加了一个onCommand事件,并且我从imagebutton中删除了你的OnClick事件。我对删除OnClick事件没有100%的把握,因此如果你能为我确认onCommand事件在从imagebutton中删除OnClick后正确触发。

至少添加了你的问题…@Gusman谢谢你你的回复,我已经更新了我的帖子,希望能更多地解释我的问题。我看了你的视频,很奇怪intellisense说控件不存在。尝试清理解决方案并重新编译,如果失败,请删除控件(labelsid和Adstitlinkbtn)然后用另一个名称再次添加它们,如果它起作用,然后重命名为正确的名称,它应该会起作用。我按UME,这是一个IDE错误。谢谢@TheBlindSpring,但是代码呢?我需要一些人来帮助我修复它并将值存储在表中。请查看我的帖子上的更新。非常感谢你感谢你的回复,但什么都没有更多html代码,仅列出listview以及页面的页眉和页脚,我还附上了sqlconnectionstring,希望能帮助您在youtube视频中找到解决方案。我看到一个标记。您在哪个控件中?请发布整个标记。正如我所说,您不理解listview在您的视频中创建每个控件每个数据绑定项的模板。这意味着无论ItemTemplate中每个项的ID是什么,在运行时都有不同的ID,这就是为什么您不能在编译时引用它们。我注意到您给了一个按钮一个命令名,这就是您需要将代码放在后面的地方。我还没有在运行时对此进行测试,很抱歉,我没有是时候为您创建一个测试解决方案了,不过我的更新答案应该会有所帮助。
    <asp:ImageButton ID="likebtn" runat="server" 
           ImageUrl="~/iconsimg/favoritestar2.png" CommandName="like" />