2016-02-17 6 views
2

У меня есть gridview с шаблоном, и в нем есть LinkButton. При нажатии кнопки я хочу, чтобы открыть ссылку в новой вкладкеКак открыть ссылку на новой вкладке, используя свойство ASP Link Button?

<Templates> 
<Obout:GridTemplate runat="server" ID="tempCurrTask"> 
    <Template> 
     <asp:LinkButton Text='<%# Container.DataItem["CurrentTask"] %>' ID="lnkbtnview2" 
       runat="server" Font-Underline="true" OnCommand="SELREC" CommandArgument='<%# Container.PageRecordIndex %>'></asp:LinkButton> 
    </Template> 
</Obout:GridTemplate> 

и функция SELREC является

protected void SELREC(object sender, CommandEventArgs e) 
{ 

     int rowIndex = int.Parse(e.CommandArgument.ToString()); 
     Hashtable dataItem = grvLeads.Rows[rowIndex].ToHashtable() as Hashtable; 
     string id = Convert.ToString(dataItem["iTask_id"]); //.Split('|'); 
     string rowIndexid = id.ToString(); 
      //+ "/" + e.CommandName.ToString(); 
     //ScriptManager.RegisterStartupScript(this, typeof(string), "openWindow", "window.open('Task.aspx?TaskID=" + rowIndexid.Trim() + "', '_newtab','left = 10, top=10,scrollbars=Yes,resizable=yes,width=1100,height=580'); ", true); 
     Response.Redirect("Task.aspx?TaskID=" + rowIndexid.Trim()); 

} 

Эта ссылка открывается в той же вкладке. Я хочу, чтобы он открывался в новой вкладке. Поэтому я изменил asp: LinkButton на asp: тег HyperLink, но функция SELREC не называется должным образом. Я хочу сделать это с помощью LinkButton, и я не знаю, как это сделать, используя кнопку ссылки. Поэтому, пожалуйста, помогите мне с образцом кода.

+0

Я не думаю, что серверный код способен справиться с этим. Я бы просто использовал javascript. –

ответ

0

Попробуйте этот подход;

<asp:LinkButton runat="server" href='<%# "Task.aspx?TaskID=" + MethodtoGenerateTaskId(parameter) %>' target="_blank">LinkButton</asp:LinkButton> 

Вы должны определить MethodtoGenerateTaskId (параметр) в C# codebehind. Возьмите CommandArgument в качестве параметра этого метода.

protected string MethodtoGenerateTaskId(string command_arg) 
{ 

    int rowIndex = int.Parse(command_arg.ToString()); 
    Hashtable dataItem = grvLeads.Rows[rowIndex].ToHashtable() as Hashtable; 
    string id = Convert.ToString(dataItem["iTask_id"]); //.Split('|'); 
    string rowIndexid = id.ToString(); 

    return rowIndexid.Trim(); 
    } 

и в разметке;

<asp:LinkButton runat="server" href='<%# "Task.aspx?TaskID=" +  MethodtoGenerateTaskId(Container.PageRecordIndex.ToString()) %>' target="_blank">LinkButton</asp:LinkButton> 

и если это сработает; pls отметьте его как ответ ...

+0

Где я хочу определить «MethodtoGenerateTaskId (параметр)»? В Java Script или C# ?. Вышеупомянутый подход работает, но здесь проблема заключается в том, что я не могу передать идентификатор задачи. Поэтому, пожалуйста, помогите мне с кодом для определения метода. –

+0

Я отредактировал свой ответ для вас. Попробуйте код, пожалуйста. – oneNiceFriend