我在.NET Framework 3.5中使用Visual Studio 2008。我在TemplateColumn中有一個帶有LinkButton的DataGrid。我想弄清楚如何禁用點擊LinkButton後點擊的能力。我的DataGrid有6列,LinkButton列顯示年份,其他顯示年份的年末數據。點擊一年後,DataGrid會逐月顯示該年份數據的細目。當DataGrid逐月顯示故障時,我仍然需要顯示年份列,但無法點擊。我還有一個按鈕和一個圖表,默認情況下可見性設置爲false,但選中一年後,可見性設置爲true,按鈕可以關閉月份分解和返回到年份最終崩潰。除了禁用LinkButton之外,我有一切工作。在DataGrid TemplateColumn中禁用LinkButton
這裏是我的DataGrid的TemplateColumn中的代碼:我曾嘗試以下
<asp:TemplateColumn HeaderText="Year End">
<ItemTemplate>
<asp:LinkButton runat="server" ID="lbYear" Text='<%# DataBinder.Eval(Container, "DataItem.year") %>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
:使用Javascript
protected void Page_Load(object sender, EventArgs e)
{
LinkButton lb = ((LinkButton) FindControl("lbYear"));
lb.Attributes.Add("onClick", "return false;");
}
嘗試2:使用代碼隱藏
嘗試1
function disableLinkButton() {
var lb = document.getElementById("lbYear");
if (lb.disabled != true) { lb.disabled = true; return true; }
}
else { return false; }
}
<asp:TemplateColumn HeaderText="Year End">
<ItemTemplate>
<asp:LinkButton runat="server" ID="lbYear" OnClientClick="disableLinkButton()" Text='<%# DataBinder.Eval(Container, "DataItem.year") %>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
- 第三屆試圖接近這確實是灰色不可用了LinkButton,但並沒有禁止使用的「已啓用」屬性,點擊它們 嘗試3的能力:
<asp:TemplateColumn HeaderText="Year End">
<ItemTemplate>
<asp:LinkButton runat="server" ID="lbYear" Enabled='<%# Convert.ToInt32(DataBinder.Eval(Container.DataItem, "year"))==1?Convert.ToBoolean("True"):Convert.ToBoolean("False") %>' Text='<%# DataBinder.Eval(Container, "DataItem.year") %>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
一些其他的想法我有包括使用的「onClick '事件或'CommandArgument'。我嘗試使用'OnClick',並在後面的代碼中簡單地使用:
LinkButton lb = ((LinkButton) FindControl("lbYear");
lb.Enabled = false;
任何幫助,想法,想法,例子等將不勝感激。謝謝大家!
調整代碼:
<ItemTemplate>
<asp:LinkButton ID="lbYear" runat="server" OnClick="testClick" Text='<%# DataBinder.Eval(Container, "DataItem.year") %>'></asp:LinkButton>
<a id="MyContrl_lbYear" href="javascript:__doPostBack('MyContrl$lbYear','')" onclick="this.href='#';this.disabled=true;__doPostBack('MyContrl$lbYear','');"></a>
</ItemTemplate>
protected void showChart(object sender, EventArgs e)
{
LinkButton lbYear = ((LinkButton)FindControl("lbYear"));
lbYear.Attributes.Add("onclick", "this.href='#';this.disabled=true;" + Page.ClientScript.GetPostBackEventReference(lbYear, "").ToString());
}
我編輯我原來的職位,並在最後一個 「調整代碼」 部分。我必須在錯誤的地方添加一些東西? – Brian 2011-05-17 16:41:03