我象征性地把头发拉出来......
我有一个gridview,其中包含一个Label,其中我想将文本拉入代码behing页面的子程序,该子程序从onclick事件触发。 (无论如何,这是最简单的解释)。
如何在代码隐藏页面上调用Label字段,以便将其应用于子例程中的变量?
这是我的templatefield中的代码,其中还包含AddThis实例的代码,这是触发onclick事件的原因。
<asp:TemplateField HeaderText="Share Tune" Visible="True">
<ItemTemplate>
<!-- AddThis Button BEGIN -->
<div class="addthis_toolbox addthis_default_style " addthis:url='<%# DataBinder.Eval(Container, "DataItem.Link_Code") %>' addthis:title='"<%# DataBinder.Eval(Container, "DataItem.Link_Title") %>" by <%=aname%>'>
<a class="addthis_button_facebook"></a>
<a class="addthis_button_twitter"></a>
<a class="addthis_button_google_plusone" <%= UpDate_GPlus1_Code() %>></a>
<a class="addthis_button_email"></a>
<a class="addthis_button_compact"></a>
<a class="addthis_counter addthis_bubble_style"></a>
<asp:Label id="share_buts" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Key") %>' Visible="False" />
</div>
<script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#pubid=ra-4e5d090e454e4ddf"></script>
<!-- AddThis Button END -->
</ItemTemplate>
</asp:TemplateField>
onclick子程序如下所示: -
Protected Sub addthis_but_Click(lnkid As String, shmtd As String)
Dim db As String
Dim shdate As DateTime
Dim uid As String
shdate = DateAndTime.Now.ToString
uid = Membership.GetUser.UserName
Label lbl = GridView1.Rows[0].FindControl("share_buts") as Label;
shmtd = ""
这会引发错误,如下面的评论中所述。我知道sub的其余部分很好,因为如果我使用“”作为变量它可以工作。显然我想要填充变量。
答案 0 :(得分:1)
我认为将列添加为数据键并以这种方式引用会更容易。但你应该能够像这样获得标签:
编辑:更改为直播
Label lbl = (Label)GridView1.Rows[0].FindControl("share_buts");